檢查字符串文件,所以我給用戶推出一個代碼像這樣的車的選項:C來自scanf函數
typedef struct
{
char name[50];
char category[50];
int code;
int price;
} car;
car c;
FILE *f;
f = fopen("Cars.txt", "r+");
printf("Enter the code of the car:");
if (f != NULL) {
scanf("%d", &c.code);
char *code;
code = (char *)malloc(sizeof(c.code) +1);
sprintf(code, "%d", &c.code);
while (checkCode(code, f) == 0)
{
printf("The code for this car already exists, try again:");
scanf("%d", &c.code);
char *code;
code = (char *)malloc(sizeof(c.code) + 1);
sprintf(code, "%d", &c.code);
}
}
這是我的註冊碼功能:
int checkCode(char *code, FILE *f) {
char line[1024];
while (fgets(line, sizeof(line), f) != NULL)
{
if (strstr(line, code) != NULL)
{
return 0;
}
}
return 1;
}
一點也沒有沒有工作。儘管我介紹關於文件的線路之一已經進入了一個代碼函數返回1。我的猜測是問題就在這裏:
while (fgets(line, sizeof(line), f) != NULL)
我是新來的C.任何人都可以請解釋我有什麼問題。謝謝大家的時間!
我們應該知道「汽車」是什麼? –
'scanf(「%d」,&c.code);' - >什麼是'c.code'? – Marievi
對不起,這是一個結構我剛剛更新了我的代碼 – Alphonse