while(!feof(fp)) //判断输入字符 { fscanf(fp,"%c",&singleChar); if(singleChar == '?') { Grammar[i][j] = '\0'; break; } if(singleChar == '\n') { Grammar[i][j]='\0'; i++; j = 0; continue; } if(singleChar == '-') { tp = fp;
时间: 2023-06-15 21:07:36 浏览: 65
这段代码的作用是从文件中读取文本,将其存储在一个二维字符数组Grammar中。具体来说,代码首先使用while循环读取文件中的字符,直到文件结束。在循环中,使用fscanf从文件中读取一个字符,并将其存储在变量singleChar中。接着,代码使用if语句判断读取的字符是否为问号"?"。如果是,表示当前语法规则已经读取完毕,将其存储在二维字符数组Grammar中,并退出当前循环。如果读取的字符为换行符"\n",表示当前行已经读取完毕,将其存储在二维字符数组Grammar中,并将行数i加1,列数j重置为0。如果读取的字符为"-",则将文件指针tp指向当前位置,但是代码没有给出后续的处理流程,因此无法判断其具体作用。
相关问题
如何理解 while(!feof(fp))
这段代码的作用是在读取文件时循环读取文件中的每个字符,直到文件结束。其中,`feof(fp)`用于检查文件指针fp所指向的文件是否已经结束,如果已经结束,则返回非零值,否则返回零值。因此,`while(!feof(fp))`的意思是,当文件未结束(即`feof(fp)`返回值为零)时,执行循环。需要注意的是,在使用`feof()`函数时,需要在读取文件之前先打开文件,读取文件完成后再关闭文件。
while(!feof(fp))是什么意思
这是一个C语言中的while循环语句,其条件判断语句为!feof(fp),表示只要文件指针fp所指向的文件没有到达文件结尾,就会一直执行循环体中的语句。其中,feof()是C语言标准库函数,用于判断文件指针所指向的文件是否已经到达文件结尾。
具体来说,while循环会在每次循环开始前先判断文件指针fp所指向的文件是否已经到达文件结尾,如果没有到达文件结尾,则继续执行循环体中的语句。如果已经到达文件结尾,则跳出while循环,继续执行while循环后面的语句。
因此,这行代码的作用是循环读取文件指针fp所指向的文件中的内容,直到文件结尾为止。