【发布时间】:2014-10-18 00:23:49
【问题描述】:
这是一个从文件中逐个字符读取并放置然后将字符串转换为浮点数的函数,但是当读取“/0”时,while循环不会终止。
GSF555 "Gas Filter - Ford Escort" 64.50 9
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在打印之前不一定是空字符。
标签: c loops while-loop character