问题描述
|
我编写了一个程序,用星号填充封闭的数字。由于某种原因,它不接受标记值EOF(Ctrl-D)。为什么是这样?
#include \“ usefunc.h \”
#定义身高100
#定义宽度100
void showRow(int number [],int size_numbers){
我
printf(\“ [\”);
对于(i = 0; i nes,int max_buf){
int i,j;
对于(i = 0; i <行; i ++){
对于(j = 0; j 代码即可。它并没有完全打印出来。这是怎么回事??
该代码的另一个更新。这次我要复制temp的值。但是,我得到
Bus error
-我做错了什么?
解决方法
你要:
int temp;
EOF是整数值,而不是char。
, while ((temp = getchar()) != \'\\n\') {
shape`[i][j]` = temp;
j++;
}
我怀疑一旦达到EOF
,就永远不会消失。我的意思是,getchar
可能会继续向您扔ѭ3and,您问“不是Not6ѭ?好吧,不需要停下来”。
另外,@ Neil Butterworth在他的回答中所说的真的很明智。