当前位置: 代码迷 >> C语言 >> 如果不是输入为 int 就 退出
  详细解决方案

如果不是输入为 int 就 退出

热度:472   发布时间:2006-09-11 22:17:19.0
以下是引用SunShining在2006-9-11 22:15:42的发言:
EOF 是 -1

我知道,我是说原理是一样的.对不对...
----------------解决方案--------------------------------------------------------
那怎么会一样呢?你试试就知道了.

scanf返回的 是它成功读入的字符的个数
----------------解决方案--------------------------------------------------------

程序代码:
... ...

int a[10];
float b[10];
for(int i=0;i<10;i++)
{
if(scanf(\"%f\",b[i]))
a[i]=(int)b[i];
}

... ...


//但不推荐这么用...无论数字和字符都包含在256个ASCII码中 而int恰好包括它们 所以只能用别的类型来消除了...但是内存会紊乱的

[此贴子已经被作者于2006-9-11 22:40:53编辑过]


----------------解决方案--------------------------------------------------------
现在对scanf越来越不满
哪位高手有闲心做动态输入的
----------------解决方案--------------------------------------------------------
哦..不是字符.就是成功从缓冲区读进来的个数
----------------解决方案--------------------------------------------------------
出发点一样,方法不同
----------------解决方案--------------------------------------------------------
结果也不同吧.
----------------解决方案--------------------------------------------------------
以下是引用SunShining在2006-9-11 22:25:51的发言:
结果也不同吧.

为什么?都可以达到一样的效果嘛


----------------解决方案--------------------------------------------------------
[QUOTE]scanf("%d",&a[i])!=EOF[/QUOTE]

这个也可以达到同样的效果吗?



#include<stdio.h>
int main()
{
int i;
if(scanf("%d",&i)!=EOF) printf("dfa");
}

这个也可以啦?那我输入是整数的时候呢?
----------------解决方案--------------------------------------------------------
也对,遇文件结束才返回EOF(-1),出错返回0
----------------解决方案--------------------------------------------------------
  相关解决方案