【发布时间】:2014-12-19 10:47:41
【问题描述】:
我在使用 fgetc() 时遇到了一个大问题,我无法弄清楚...我尝试解析一个文本文件,一切都编译了,但在执行时我遇到了无限循环或段错误(代码::blocks ),我的文本文件是这样的: {"USD_EUR": "0.8631364", "EUR_USD": "1.3964719"} 有 16 种利率变化。我试着把我所有的浮动都放在 rate[16]...
FILE* file = NULL;
file = fopen(myFile, "r+");
int value,i;
float rate[16];
char* str = "";
if (file != NULL)
{
do
{
value = fgetc(file);
printf("%c \n",value);
while(value > 48 && value < 57)
{
value = fgetc(file);
strcat(str, value);
//printf("%s \n", str);
}
rate[i] = atof(str);
i++;
str = "";
}while(value != 125); // 125 = }
【问题讨论】:
-
检查fopen函数后文件的状态,请将
valeur改为value作为变量并正确关闭大括号。而=!是错误的,正确的方法是!=。 -
这个不编译,第一个问题是没有使用valeur。第二个问题是价值没有定义。第三个问题是 while(value =!EOF); 这一行。不正确,因为它执行的是分配而不是比较。
-
@user3629249 ,OP 显示了他的代码有问题的部分,而不是全部。另外,如果OP可以运行程序,他/她一定已经编译了。
-
OT:
(value < 48 && value > 57)这永远不会是真的。 -
学习使用调试器来跟踪您的代码。
标签: c file parsing loops fgetc