while(scanf( %d ,&a[i])!=EOF)的用法
输入数据结束想退出循环时 拍入 组合键 Ctrl-Z 就是 EOF.
int item[100];
int i,n;
i=0;
while(scanf("%d",&item[i])!=EOF) { i++;}
n=i;
printf("I have read:
");
for (i=0;i<n;i++) printf("%d ",item[i]);
while(scanf(%c,&a)!=EOF),这个是如果读取正确,则一直读取数据。
数组直接用a,是指传递了a数组的首地址,根据a的偏移量读取数据。a[]是指单独赋值数组中的某个值。
存储字符串用字符数组,可以直接赋值,也可以按照下标赋值,按照下标赋值需要在结尾手动添加“\0”。
输入整数赋值给a数组,直到到达EOF为止,EOF 意思就是 end of file。
scanf的返回值由后面的参数决定
scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
Linux中,在新的一行的开头,按下Ctrl+D,就代表EOF;
Windows中,Ctrl+Z表示EOF。
while(scanf("%d",&a[i])!=EOF)
你这个是不行的,因为每次你读下一个数字都要空格,所以这个没用一直循环
你改成while(scanf("%d",&a[i]))
当你输入不是int 型的时候结束
Ctrl+Z可以使scanf返回EOF
楼上胡扯,楼上的楼上胡扯。
cout<<"输出个字符串有什么问题??"<<endl;
scanf函数只有在无法读取到更多数据的情况下才会返回EOF,至于输入的东西不是int,程序会卡死在这.......
如果是Windows下的命令提示符或者纯DOS, Ctrl+Z,回车是正确的终止输入的方式。
就是说程序运行后输入数字->回车继续输入数字->按Ctrl+Z,回车结束输入
Unix之类则是Ctrl+D(应该没记错)。
至于这个程序还有几处错误, 而且看了半天不知所谓, 这坨代码究竟是干什么用的?
cout<<"yunxing"; << 后面接的 变量 你搞个字符串什么意思
hile(scanf("%d %d",&a, &b) != EOF)什么意思,什么作用,谢谢~~这里面...
EOF就是-1,是在stdio.h里定义的。按照上面的说明,scanf函数只有在第一个参数为NULL(空指针)的情况下,才可能返回EOF,否则,返回成功格式化并赋值的参数个数(>=0)。所以,楼主你的这个循环,将是一个死循环。另外,站长团上有产品团购,便宜有保证 ...
whhile(scanf("%d",&n)!=-1)是什么意思
是“while(scanf("%d",&n)!=-1)”?scanf如果遇到错误或遇到end of file就返回EOF(-1),所以这段代码的意思可能是循环一直让用户,一直到输入错误为止,即scanf返回EOF。
do while程序代码错误
printf("\\n");scanf("%d",&selection);} while(selection<1||selection>4);return selection;}
C\/N值是什么
在肥料生产行业中,C\/N值指的是碳和氮的比值。碳素是堆肥微生物的基本能量来源,也是微生物细胞构成的基本原材料,堆肥微生物在分解含碳有机物的同时,利用部分氮元素来构建自身的细胞体,氮还是构成细胞中蛋白质、核酸、各种酶类的重要成分,一般情况下微生物每消耗25g有机碳,需要吸收1g氮素,微生物...
linux段错误
首先 要明白一点,任何的段错误,都是内存分配有错误,在编译的时候 把 -g 加上,然后用gdb调试,看错误出现的位置,再分析……gdb显示第26行有错误
求getchar();使用与否所造成的差别 whhile循环下的第一行 不加getchar...
没有getchar()当你输入了一个比2500小的年份,这个程序会从输入年份一直循环到2500为止,即是结果有多个。有了getchar()是为了让函数停一会,当你再按会车时,就继续判断。比如,你输入2448,没有getchar时,会是连续的结果,而有的时候,敲一下任意键有一个结果。建议你看看getchar()的作用,还有...