ファイルを読み込んで内容を確認する機能があります。このファイルには、、、、など()
のアルファベット以外の文字とともにいくつかのバイナリコンテンツが含まれています。読み取りを行う関数は次のとおりです。=
divided by symbol
int FindMyWord(const char *fileName)
{
ifstream myFile (fileName);
if(!myFile)
return false;
string wordSearch = "MyWord";
string line;
int result = 0;
while(getline(myFile, line))
{
if(line.find(wordSearch) != string::npos)
result++;
}
//if(!myFile.eof() || !myFile)
if(!myFile)
printf("Problem Reading the File: %s\n", (const char *)fileName);
myFile.close();
return result;
}
私はこれらの2つの問題を抱えています:
- 行に2進文字が含まれている場合、その行は完全な行を読み取っていません。最初の単語を読み取っているだけです(少なくとも、VS2010でファイルを開いて観察しているものです)。
(
行頭の文字に遭遇すると、whileループが終了し、printf()
が出力されます。
string::getline()
そのような文字を読むことができない場合、解決策は何ですか?ありがとうございました。
更新:ファイル内のいくつかのバイナリデータの画像: