从文件中读取每一行并将每一行发送到另一个函数的函数。但是我在代码的注释部分发现了一个错误。为什么?
我将每个字符存储在一个字符数组中。应该很简单。我不明白为什么没用。是因为它是一个数组,而不是存储在其中?
我想我添加了足够的程序细节,但我得到的红色的东西说我需要添加更多。希望这足够了。
void exercise3(void)
{
FILE * inputFile;
char line[64];
int number_of_conversions=1;
int i = 0;
printf("BEGIN EXERCISE 3\n");
// Open the file /public/lab10ex3.txt for reading. Store the handle in the
// variable inputFile.
// (WRITE THE CODE HERE)
inputFile=fopen("/public/lab10ex3.txt","r");
// Test to ensure the file was successfully opened. If opening the file
// failed, display an error message, and exit the program with an exit
// code of 1.
// (WRITE THE CODE HERE)
if (inputFile==NULL){
printf("bad stuff \n");
exit(1);
}
// Read each line from the file into the character array 'line'. Pass
// each line of text to the processDrawCommand function.
// (WRITE THE CODE HERE)
while (number_of_conversions!=0 && number_of_conversions!=EOF ){
number_of_conversions=fscanf(inputFile,"%c",&line[i]); //Error Here
if (line[i]=='\n'){
i=0;
processDrawCommand('\n');
}
processDrawCommand(line);
i++;
}
最佳答案
我注意到的一件事是i
中&line[i]
的值可以超过上面声明的分配数组大小64:char line[64];
这意味着,如果您分析的行超过64个字符,您将得到一个越界错误,您的程序将失败。
关于c - 该程序有什么问题??是什么导致无限循环。 C,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29983082/