ファイルから1行を読み取って、読み取ったばかりの行の先頭に戻ろうとしています:
FILE *fp = fopen("C:\\F2BJROP1.phn", "r+");
while(1){
/**Data reading**/
fscanf(fp, "%f", &temp1);
if(feof(fp))
break;
if(isvoiced(temp1)==1){ /** isvoiced() has nothing to do with this fp. **/
pos = ftell(fp);
voicedIntervs[k++] = temp1;
fscanf(fp, "%f", &temp1);
voicedIntervs[k++] = temp1;
fseek(fp, pos, SEEK_SET); /** Trying to go back to pos **/
}
}
しかし、fseek の直後に、fp が EOF に向かってジャンプすることがわかります。fp を pos に保存されている位置に戻したいです。プログラムのどこにも他の fp は宣言されていません。
デバッグして値を確認したので、fp が EOF に達することはわかっています。
私はWindows 10を使用しています。