【发布时间】:2015-12-27 14:01:16
【问题描述】:
我正在使用 code::blocks 进行编程,但读取文件时遇到问题,这里是代码:
char fileName[] ="";
fflush(stdin);
E11: printf("\n\tEnter the @ Mac (X:X:X:X:X:X) in Hex :");
gets(MAC);
E12: printf("\n\tEnter file name:");
gets(fileName);
FILE* fichier;
fichier = fopen(fileName,"r");
if (fichier == NULL)
{
printf("Error! Try Again");
goto E12;
}
else
{
printf("sending Data....");
//TODO..
}
【问题讨论】:
-
Doing
fflush(stdin)在 C 规范中被明确标记为未定义的行为。一些标准库实现了它,但如果你想要可移植或符合标准,你不应该这样做。 -
另外,不要使用标签和
goto作为循环,使用实际循环。 C 可能一开始是一种高级汇编语言,但现在已经不是了。 -
在这种情况下不要使用
goto。 -
我忘了提到我在这段代码之前使用了 'scanf()' 和 'getch()'。
-
我也试过了 'fichier = fopen("file.txt","r");' 但没什么新意。
标签: c arrays initialization fgets