首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >继续对命令行中的所有输入执行scanf。C程序

继续对命令行中的所有输入执行scanf。C程序
EN

Stack Overflow用户
提问于 2012-04-17 18:01:06
回答 1查看 2.5K关注 0票数 1

我正在尝试从命令行获取所有输入,并将其放入一个链表中。命令行中的数字格式为0-1 2-3 4-9 etcc这里是我在两个变量中存储一对数字的方法:

代码语言:javascript
运行
复制
scanf("%d-%d", &a, &b);

现在,这个scanf语句在一个循环中,我的问题是:循环的条件是什么?我想继续执行scanf,直到所有的输入都完成。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-17 18:10:08

如果不是臭名昭著的话,scanf的一个著名特征是,当读取非字符串数据(例如,int)时,它会将数据留在输入缓冲区中。点击这里:Leave data in input buffer

试试这个:

代码语言:javascript
运行
复制
do
{
  int x = scanf("%d-%d", &a, &b);
}while ((x != EOF) && (getchar() != '\n'));

您需要将scanf输出与EOF进行比较。最重要的是,您需要清除scanf在输入缓冲区中留下的'\n'

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10189091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档