X2マトリックスをそのままテキストファイルに保存しています。私はそれをC++で読もうとします
nb_try=0;
fin>>c_tmp>>gamma_tmp;
while (!fin.eof( )) //if not at end of file, continue reading numbers
{
// store
cs_bit.push_back(c_tmp);
gammas_bit.push_back(gamma_tmp);
nb_try++;
// read
fin>>c_tmp;
assert(!fin.fail( )); // fail at the nb_try=n
if(fin.eof( ))break;
fin>>gamma_tmp; // get first number from the file (priming the input statement)
assert(!fin.fail( ));
}
nb_try == nの場合、最初のアサートは失敗します。つまり、fin.fail()はtrueです。これは、存在しない最初の数値を読み取ろうとしたときに発生します。しかし、最後の数値を読み取った後、なぜfin.eof()が真ではないのでしょうか。存在しない最初の数字を読んだときにだけ真になるということですか?また、fin.fail()とfin.eof()が同時にtrueになっているというのは本当ですか?
ありがとう、よろしく!