Tag: while loop

如何使用feof(FILE * f)?

我在使用do-while循环时遇到困难,当我们到达文件末尾时应该停止。 这是循环代码: do { if (pcompanyRow[0] != ‘#’ && pass == 1) { strtok(pcompanyRow, “:”); pcompanyName = strcpy(pcompanyName, strtok(NULL, “”)); pass = 2; fgets(pcompanyRow, 1024, f); } if (pcompanyRow[0] != ‘#’ && pass == 2) { strtok(pcompanyRow, “:”); pcompanySMSPrice = strcpy(pcompanySMSPrice, strtok(NULL , “”)); pass = 3; fgets(pcompanyRow, 1024 , f); } if (pcompanyRow[0] != […]

在while循环中使用getchar()

#include main() { int c ; while ((c = getchar()) != EOF) { int isEOF = (c==EOF); printf(“is %c EOF: %d “, c, isEOF); } } 为什么printf()方法在每个输入char上被调用两次? 如果我输入’a’,我得到的结果就像 E:\C_workouts>gcc CharIO.c -o CharIO.exe E:\C_workouts>CharIO.exe a is a EOF: 0 is EOF: 0 每次输入都会发生同样的情况。

while循环第二次忽略scanf

#include int main () { char loop=’y’; while(loop != ‘n’) { printf(“loop? “); scanf(“%c”, &loop); if(loop != ‘y’) { loop=’n’; } } return 0; } 如果我键入’y’,他会重新启动while循环,但会在第二次忽略scanf并在此之后结束循环。 有人可以帮忙吗?