我被要求製作一個C程序,用作'價格查詢',用戶輸入產品名稱,程序將打印出存儲在文件中的名稱和價格。如果該項目不存在於該文件中,該程序將讓用戶知道。只要用戶想要搜索,程序就會保持循環。我使用Dev C++編寫了代碼,但是在運行代碼之後,程序在幾次循環後卡住了,並且是隨機的。你們可以檢測到我的編碼有問題,還是僅僅是Dev C++的問題?我在下面列出了我的代碼。非常感謝您的幫助。C - 價格查詢程序
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<ctype.h>
int main()
{
FILE *items;
char *mode="r";
char pName[50];
float pPrice;
char p1Name[50];
int value=0;
char respond='Y';
char s[50];
items=fopen("Product_Name_Price.txt", mode);
if(items==NULL)
{
fprintf(stderr, "Can't open file Product_Name_Price.txt!\n");
exit(1);
}
printf("File has been successfully opened\n");
do
{
printf("Enter the name of the product you wish to look for\n");
scanf("%s", &p1Name);
while(strcmp(p1Name, pName) !=0)
{
fscanf(items,"%s %f", pName, &pPrice);
//printf("%s\t%.2f\n", pName, pPrice);
//value=strcmp(p1Name, pName);
if(strcmp(p1Name, pName) == 0)
{
printf("%s\t%.2f\n", pName, pPrice);
}
}
/*
else
{
printf("No data in system\n");
}
*/
printf("Do you wish to look up for more item? (Y/N)\n");
scanf("%s", &respond);
}while(respond=='Y'|| respond=='y');
printf("This program is closing\n");
fclose(items);
}
scanf%s用於字符串,%c用於字符。未定義的行爲造成的隨機事件。 – Unimportant
這是一個C程序或C++程序嗎?選一個_。 (如果它是一個C++程序,爲什麼你用C語言編寫並使用C特性?) –
我正在c程序中完成它。 –