如何确定scanf是否读取格式中指定的内容? [英] How can I determine if scanf read what was specified in format?

查看:148
本文介绍了如何确定scanf是否读取格式中指定的内容?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个定义变量的程序 int data

I have a program that defines a variable int data

该程序使用 scanf(%d,& data)从stdin读取数据。
如果stdin的数据不是整数,我必须打印错误信息。

The program uses scanf("%d",&data) to read data from stdin. If the data from stdin is not an integer, I have to print error message.

我试过 if(scanf(% d,& data)== EOF){printf(error); return 1;}

它不起作用为了我。那么,我如何确定scanf是否失败或成功?

It didn`t works for me. So, how can I determine if scanf failed or succeeded?

推荐答案

scanf 的返回值是一个整数,告诉你成功读取了多少项。如果您的单个整数成功读取, scanf 将返回1.

scanf's return value is an integer, telling you how many items were succesfully read. If your single integer was read successfully, scanf will return 1.

例如。

int items_read = scanf("%d", &data);

if (items_read != 1) {
    //It was not a proper integer
}

关于读取整数的讨论很充分此处,有关Stack Overflow的信息

There is a great discussion on reading integers here, on Stack Overflow.

这篇关于如何确定scanf是否读取格式中指定的内容?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆