Tag: cof

为什么多个EOF进入结束程序?

试图了解我的代码的行为。 我期待Ctrl-D导致程序打印arrays并退出,但是需要3次按下,并在第二次按下后进入while循环。 #include #include void unyon(int p, int q); int connected(int p, int q); int main(int argc, char *argv[]) { int c, p, q, i, size, *ptr; scanf(“%d”, &size); ptr = malloc(size * sizeof(int)); while((c = getchar()) != EOF){ scanf(“%d”, &p); scanf(“%d”, &q); printf(“p = %d, q = %d\n”, p, q); } for(i = 0; […]

为什么代码不打印任何输出?

按下Ctrl + D后,我希望这段代码可以打印数组,但它什么都不做。 #include int main(){ int k,i=0,a; int b[10]; while(scanf(“%d”,&a)!=EOF){ if(a>(a/4+a/3+a/2)) b[i]=a; else b[i]=(a/4+a/3+a/2); i++; } for(k=0;k<=i;k++){ printf("%d\n",b[k]); } return 0; }

如何在没有前面的换行符的情况下刺激EOF

可以说我有以下C代码: int getLine (char line[]) { int c, i=0; while( (c=getchar()) != EOF ) line[i++]=c; line[i++] = c; return i; } >> Enter: 007 >> ^Z >> Output: 如果我们仔细观察上面给出输出的方式,我会在刺激EOF之前按Enter 。 这意味着,字符串的长度为4而不是3(不包括EOF)。 当我做练习时,我真的面临着一些额外的麻烦。 如何在没有换行的情况下刺激EOF? 有可能吗? >> Enter: 007^Z >> ^Z >> Output: length=6

为什么getchar()仅在行的开头识别EOF?

这个例子来自K&R书 #include main() { long nc; nc = 0; while(getchar() != EOF) ++nc; printf(“%ld\n”, nc); } 你能解释一下为什么它会这样运作吗? 谢谢。 ^ Z ^ Z也不起作用(除非它在一行的开头)

结束文件的方法(EOF)在NetBeans控制台中不起作用

我一直在学习K&Re2的C语言。 上面的代码是Pg18( 信件计数程序 )中提到的,我为了确认目的而运行。 我尝试输入几个字符并按ENTER ,但它无法正常工作。 然后我听说CTRL+Z , CTRL+C或CTRL+D和ENTER结束文件。 我在NetBeans控制台中尝试过它,但它无法正常工作。 我也尝试了\0和\n ,可惜它也没有用。 我已经搜索了这个,但似乎用CTRL+Z解决了CTRL+Z , CTRL+C或CTRL+D 。 我无法理解这里的问题是什么。 PS:我使用的是Windows 7 很抱歉没有直接插入代码。 就这个- #include #include int main() { long c = 0; while (getchar() != EOF) { ++c; } printf(“%ld”, c); return 0; } 在图像中,我没有初始化long c值。 对不起。 这个程序正在运行,但我用于EOF的方法无法解决。 编辑:我尝试在NetBeans中编译,然后在cmd而不是在NetBeans控制台中运行生成的.exe。 CTRL+Z似乎有效! 你们有没有想过为什么它在NetBeans控制台中不起作用?

while((c = getchar())!= EOF)没有终止

我一直在阅读“C编程语言”,我得到了这部分输入和输出。 我已经阅读了其他主题,说控制台无法识别输入为EOF 。 所以我应该在Windows中使用CTRL + Z或在Unix中使用CTRL + D (这些都不适用于我)。 我也读过其他人问同样的说法他们可以使它工作,他们的代码中的问题是语法而不是程序没有终止。 还有其他解决方案吗? 这是代码: #include main() { int nb, nl, nt, c; nb = 0; nl = 0; nt = 0; while ((c = getchar()) != ‘\n’){ if (c == ‘ ‘) ++nb; else if (c == ‘\n’) ++nl; else if (c == ‘\t’) ++nt; } printf(“Input […]

在Windows 7上遇到EOF问题

我正在用K&R学习C,我很难通过cmd发送EOF模拟。 我正在尝试Ctrl + Z ,它什么也没做。 在某些情况下, Enter正在进行工作,而在其他情况下,没有任何操作。 在此先感谢您的帮助。