0
txtファイルの総数ワードを測定しようとしています。このファイルはランダムで、長さ3〜10の10語の各行で構成され、codeによって生成されます。特定の行の単語は、単一のスペースで区切られています。今、私は、ファイル内の単語の合計数を測定する方法はこれです:私は上記のコードを複数回実行する場合ifstream(ワードカウント)の予期しない動作
ifstream inputFile("myfile.txt", ios::in | ios::binary | ios::ate);
//Count number of total words in input file
long unsigned int numWords;
inputFile.seekg(0);
char c;
while (inputFile.get(c)){
if (isspace(c) && c != '\r') numWords++;
}
//Test
printf("\nSampled file has %lu words\n", numWords);
、それらの半分は正しい結果とそれらの半分いくつかのランダムな番号を取得します。私は
string word;
long unsigned int ctr = 0;
while (inputFile >> word) ctr++;
(または多分他のもの)のようにこれを行うにはよりエレガントな方法があることを知っているが、私は最初のオプションが失敗した理由を知りたいのです。
「\ n」の文字も考慮しましたか? – alseether
'numWords'をゼロで初期化してみませんか? – DAle
それがあなたが使っているプログラム全体であれば、 'numWords'は0で初期化されないかもしれません。 –