図1は、アイテムコード、アイテム名、アイテム価格、およびアイテム数を格納するテキストファイル(itemlist.txt)を示しています。テキストファイルからデータを読み取って画面に0個の項目の情報を表示するプログラムを作成します。ファイルCのプログラミングでエラーが発生しました
itemCode a unique unsigned integer that differentiates an item from another
itemName the name of an item (not more than 50 characters)
itemPrice the current selling price of an item
itemQuantity an integer that shows the quantity of an item
はまた、ファイル内のフィールドは、カンマで区切られていると仮定:
は、ファイルに格納されたデータであると仮定する。
ファイル内容:
3123,Potato Chips,3.99,8
2213,Peanut butter,7.99,0
4533,Candy,1.05,14
8744,Ice cream,2.50,0
出力例:
Out-of-stock items:
-------------------------------
2213 Peanut butter 7.99
8744 Ice cream 2.50
誰もが私のコードを読んで、問題が何であるかを見ることはできますか?プログラムが異常終了しますが、なぜ...
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned int itemCode;
char itemName[50];
float itemPrice;
int itemQuantity;
FILE *fp;
fp = fopen("itemlist.txt", "r");
printf("%s","Out-of-stock items: \n");
printf("-------------------------");
while(!feof(fp)) {
fscanf(fp, "%4u,%[^,],%f,%d", &itemCode, itemName, &itemPrice, &itemQuantity);
if(itemQuantity == 0){
printf("%u %s %f\n",itemCode,itemName,itemPrice);
}
}
fclose(fp);
return 0;
}
私は知りませんし、また、私はitemNameにしてありますどのように多くの要素、アイテムの名前が50以上の文字でない場合ことを知っていただきたいと思いますアレイ?
figure1とは何ですかここで図を提供したり、その部分を削除してください。 –
デバッガを使用して、問題の場所を特定します。それは問題を特定するための良い方法になるはずですが、それを修正する方法ではありません。 –
おそらくfscanfからの戻り値をチェックするのがよいスタートポイントになります –