从文件中读取每一行并将每一行发送到另一个函数的函数。但是我在代码的注释部分发现了一个错误。为什么?
我将每个字符存储在一个字符数组中。应该很简单。我不明白为什么没用。是因为它是一个数组,而不是存储在其中?
我想我添加了足够的程序细节,但我得到的红色的东西说我需要添加更多。希望这足够了。

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/

10-17 02:47