私は同様の質問を見てきましたが、私のものは少し異なります。ファイルをバイナリモードで開き、読み取り中にエラーが発生するかどうかを確認します。
ファイルの内容:
message1, message2, 53467
単純なファイルを読み取るプログラム:
int bytesRead;
FILE* CSV;
CSV = fopen("\\Temp\\csv.txt", "rb");
char dataBuf[128];
while ( (bytesRead = fread(dataBuf, 1, sizeof(dataBuf), CSV) > 0) )
{
if (ferror(CSV))
//handle error
//do stuff with dataBuf contents
}
fread() は常に 1 を返しています。ferror も入力されていないため、ファイルの読み取りエラーは発生していません。ただし、char 配列 dataBuf には、ファイルからのメッセージ全体が入ります。fread を別の関数と組み合わせて使用しているため、fread() を使用して読み取られたバイト数を知る必要があります。何か案は?