我正在用K&R教自己C,练习1-16让我重构一些提供的代码,给出“任意长的输入行”的长度。
在处理这个问题时,我发现我的终端在1023个字符后停止接受输入;一个非常可疑的数字,我相信你会同意的!!我在Mac和OpenBSD上进行了测试,并看到了同样的行为。程序没有停止响应,因为输入backspace和提交输入是正确的。
我不知道如何用gdb调试这个问题,因为这个问题发生在数据输入过程中,而不是在提交之后。
我看不出getchar或bash手册中有什么限制,而且实际上输入似乎很少。
我把问题减少到以下几个方面,并看到了同样的行为。
#include <stdio.h>
main()
{
int c,i=0;
while ((c=getchar()) != EOF && c!='\n')
++i;
printf("%d\n",i);
return 0;
}
请大家解释一下:
非常感谢。
发布于 2013-07-05 14:32:26
根据对我的问题的评论,这似乎是一个最终的限制。将文件输送到程序中就像预期的那样工作。
https://stackoverflow.com/questions/17497424
复制相似问题