ファイルの行数と文字数を数えるコードを書いています。
#include <fstream>
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(int argc, char* argv[])
{
ifstream read(argv[1]);
char line[256];
int nLines=0, nChars=0, nTotalChars=0;
read.getline(line, 256);
while(read.good()) /
{
nChars=0;
int i=0;
while(line[i]!='\n')
{
if ((int)line[i]>32) {nChars++;}
i++;
}
nLines++;
nTotalChars= nTotalChars + nChars;
read.getline(line, 256);
}
cout << "The number of lines is "<< nLines << endl;
cout << "The number of characters is "<< nTotalChars << endl;
}
行while(line[i]!='\n')
は次のエラーの原因のようです
セグメンテーション違反 (コアダンプ)
何が悪いのかわかりません。インターネットは、私が知る限り、行末を正しくチェックしていると教えてくれます。