eof-最后的结果2是在输入两个1后得出的,为什么等我再输入两个数据(2)在按回车后才出现结果,EOF?

问题描述

最后的结果2是在输入两个1后得出的,为什么等我再输入两个数据(2)在按回车后才出现结果,EOF?

#include
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
printf("%dn",a+b);
}

解决方案

scanf()函数返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。
也就是说正常不应该返回 EOF ,即 -1 的。

由于是一个 while 循环,是否可以认为回车换行符被错误的输入而导致错误出现!所以,建议 你将 a 和 b 的数值输出看看。

解决方案二:

 #include<stdio.h>
int main()
{
    int a,b;
    while(scanf("%d%d",&a,&b)==2) //2个数字,正常参数
    {
        printf("%dn",a+b);
    }
}

你可以这么写

运行

时间: 2024-10-04 12:56:54

eof-最后的结果2是在输入两个1后得出的,为什么等我再输入两个数据(2)在按回车后才出现结果,EOF?的相关文章

顺序栈入栈时输入入栈元素回车之后不能够运行,需要再输入个字节才能运行。预计主函数存在问题。

问题描述 顺序栈入栈时输入入栈元素回车之后不能够运行,需要再输入个字节才能运行.预计主函数存在问题. #include #include #define MAXSIZE 100 //顺序栈的存储空间的初始分配量 #define SElemType int typedef struct { SElemType *base; SElemType *top; int stacksize; } SqStack; //栈的初始化 void InitStack(SqStack *S) { S->base=(

printf-输入从小到大的5个数。然后再输入一个数,然后按从小到大排列输出。下面的程序为什么不正确?

问题描述 输入从小到大的5个数.然后再输入一个数,然后按从小到大排列输出.下面的程序为什么不正确? int i,a[6],x,t; for(i=0;i<5;i++) scanf("%d",&a[i]); printf("再输入一个数"); scanf("%d",&a[x]); for(i=0;i<6;i++) { if(a[x]>a[x+1]) { t=a[x]; a[x]=a[x+1]; a[x+1]=t; }

mfc-vc如何实现按下回车后编辑框输入焦点传递到下一编辑框?控件如何绑定类

问题描述 vc如何实现按下回车后编辑框输入焦点传递到下一编辑框?控件如何绑定类 vc如何实现按下回车后编辑框输入焦点传递到下一编辑框?控件如何绑定类? 解决方案 在对话框界面按下Ctrl+D组合键,将各个控件的Order进行排序,设置你想要的次序,设置好后,添加PreTranslateMessage函数并加入如下代码···试试吧 BOOL CCodeMess::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code

js 求帮忙写一个正则表达式 要求只能输入 数字英文和汉字的 其他的一律不能输入

问题描述 js 求帮忙写一个正则表达式 要求只能输入 数字英文和汉字的 其他的一律不能输入 js 求帮忙写一个正则表达式 要求只能输入 数字英文和汉字的 其他的一律不能输入 解决方案 [d|A-z|u4E00-u9FFF]+这个可以匹配简繁中文和任意数字以及字母. 解决方案二: 网上找的,试一下行不行 ^[u4E00-u9FA5A-Za-z0-9]+$ 解决方案三: 我试了一下可以啊 <input id=""a"" type=""text&

c-用C语言实现在键盘输入两个十进制数,然后在屏幕输出这两个数中较大的那个数

问题描述 用C语言实现在键盘输入两个十进制数,然后在屏幕输出这两个数中较大的那个数 我是这样写的: #include #include void main() { scanf("%d,%d",&a,&a,&b); c=max(a,b); print("max=%d",c); return 0; } 可是怎么就不对了呢?想不明白..啊-- 解决方案 1;如wolf所说,多一个&a,多return 0; 2;a,b,c没定义 3;我记得标

键盘响应-C# 需要在判断输入回车后对某传入的参数进行操作,请问怎么实现?

问题描述 C# 需要在判断输入回车后对某传入的参数进行操作,请问怎么实现? private void Mission_KeyDown(object sender, KeyEventArgs e,short i) { if (e.KeyCode == Keys.Enter) { //对i操作 } } 这样写无法引用,求问有什么办法可以实现? 解决方案 把i这个参数放进TextBox控件的Tag对像中传入 private void Mission_KeyDown(object sender, Key

Sybase启动后我输入shutdown命令关闭,之后再输入启动命令提示,

问题描述 Sybase启动后我输入shutdown命令关闭,之后再输入启动命令提示,

struct-用注释替换源代码后,直接跳过从键盘输入sex的值,执行salary的输入,什么情况?不好编辑,有点难看,谅解

问题描述 用注释替换源代码后,直接跳过从键盘输入sex的值,执行salary的输入,什么情况?不好编辑,有点难看,谅解 #include #include #include struct worker_List { char name[20]; char sex[1];//char sex: long salary; }; int main() { int len = 0; struct worker_List *str; int i = 0; char name[20]; printf ("p

c++ cin-关于C++输入cin的问题,下面的程序,如果输入一个字符,那就将陷入死循环,为什么?

问题描述 关于C++输入cin的问题,下面的程序,如果输入一个字符,那就将陷入死循环,为什么? #include main() { int i; while(i!=-1) { cout<<"i=" cin>>i; cout< } } 上面的程序,如果输入的不合法,比如输入一个字符,那就将陷入死循环.解决的办法 有个一,把cin>>i;语句移到判断循环的语句,那么输入的如果是不合法的变量,他将跳出循环 . 解决方案 是不是将i转化为对应的ASCI