3

私は同様の質問を見てきましたが、私のものは少し異なります。ファイルをバイナリモードで開き、読み取り中にエラーが発生するかどうかを確認します。

ファイルの内容:

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() を使用して読み取られたバイト数を知る必要があります。何か案は?

4

1 に答える 1