varunummerの検索結果と一致する1つ以上の項目のみを保存するにはどうすればよいですか?この関数は機能しますが、配列が制限されていてファイルを保存すると消えてしまう項目が保存され、検索された項目のみが保存されます。また、一致した項目の数だけでnrOfGoods
を増やすにはどうすればよいですか? PS:nrOfGoods
は、配列内の項目数を追跡します。これは私が今までに得たものです:1つのアイテムのみを.txtファイルに保存する方法は?機能
struct varor{
int varunummer;
char namn[WORDLENGTH];
int lagersaldo;
};
void saveProduct(struct varor reg[], int nrOfGoods){
FILE * fp;
char nameFile[WORDLENGTH];
int i, j, varunummer;
printf("Enter varunummer: ");
scanf("%d", &varunummer);
for(i=0; i<nrOfGoods; i++){
if (reg[i].varunummer == varunummer){
printf("Enter file name to save (end with .txt): ");
scanf("%s", nameFile);
fp = fopen (nameFile, "w");
//fprintf(fp,"%d\n", nrOfGoods);// this delete all my other saved items
for(i=0;i<(nrOfGoods);i++){
fprintf(fp,"%d\n", reg[i].varunummer);
fprintf(fp,"%s\n", reg[i].namn);
fprintf(fp,"%d\n", reg[i].lagersaldo);
}
} else printf("\nVarunummer not found!\n");
}
fclose(fp);
}
両方のループで同じ変数 'i'を使用しています。また、「Varrunummer not found」メッセージは、番号が見つかっても印刷されます。これは、別の項目があっても一致しない項目ごとに印刷されるためです。 – Barmar
@Barmarはい私はそれをしましたが、前に保存されたすべての私のコンテンツを消去します。私はそれがfprintf(fp、 "%d \ n"、nrOfGoods)のためだと思います。代わりにそれをどのように書くべきですか? – Zuzu
@xingファイルを追加しない項目を追加する必要があります – Zuzu