這是一個從文件中逐個字符讀取的函數,然後將該字符串轉換爲float,但while循環在讀取'/ 0'時不會終止。while循環不以' 0'結尾
GSF555 「氣體過濾器 - 福特護航」 64.50 9 < - 這就是中但 「64.50」
PKL070讀 「公園鏡頭 - 豐田卡羅拉」 36.50 8
while循環進入超過'/ 0'並且還讀取下一行數據中的「9」和字符。
我只是有printf
看看有什麼問題。
float getPrice(FILE * in){
char ch;
int i = 0;
char str[10];
ch = fgetc(in);
printf("INDEX + NUMBER = %d %c\n", i, ch);
if(ch == '\0')
ch = fgetc(in);
str[i++] = ch;
while(ch != '\0' && i < 10){
str[i++] = ch;
printf("Index I = %d\n", i);
ch = fgetc(in);
printf("3 %c\n",ch);
}
printf("STRING = %s\n", str);
return atof(str);
}
'str'不一定是null字符在打印前終止。 – chux 2014-10-18 02:20:06