私はfgets();
FEOFは、動作するようには思えない - テキストファイル
を使用してテキストファイルから行を読んでいる私はループを持って:while(!feof(fp))
事はプログラムがループに入る続け、あります私が最後の行に到達して読み込んだ後でさえ、デバッグでは、ファイルptrはドットだけを表示し、データ列は表示しません。
私が最後に到達したことを知り、再びループに入ることはできません。
while (!feof(fp)) {
if (strcmp(data2->ID ,data1->ID)<0) {
fseek(fp, backTo, SEEK_SET);
fprintf(fp, "%s",lin2);
fprintf(fp, "%s",lin1);
flag = 1;
}
else
{
strcpy(data1->ID,data2->ID);
strcpy(data1->name,data2->name);
data1->price=data2->price;
}
if(fgets(line2, sizeof(line2),fp)!=NULL)
{
itemSize2=strlen(line2)+1;
strcpy(data2->ID,strtok (line2,","));
}
}
、私はその後、私は二回fprintfの使用およびそれらのライン上の書き込みfseek関数を使用して、ファイルの初めに行くよテキストファイル内の唯一の2行は、私がEOF
に到達する必要があり、その後、あります
もっとコードしてください。 – svens
コードを単純化して、まだ誤動作していないか確認してください。まず、fsetはeofフラグをリセットするかもしれません。 – Arkadiy