再谈scanf的返回值以及其返回值的利用方式

关于scanf的返回值请参考我的另一篇文章
scanf的返回值
以及另一篇博文关于scanf的返回值
先看一下下面的题目:
//用代码表示以下测试条件//

  1. scanf()读取一个名为x的double类型值且失败
  2. scanf()成功读入一个整数
    答案如下:
scanf("%lf",x) != 1//或者写成scanf("%lf",x) == 0也行
scanf("%d",x) == 1

在这里scanf的返回值作为了一个条件,这种常常放到循环中应用
例如:

while (scanf("%s %c %c", str, &oldchar, &newchar) == 3)
 /* 或!= EOF , 但前者更好 */(这其实是上面其中一篇文章里面的一段代码)

关于这段代码我想要解释的是为什么%s与%c之间要加一个空格,上面的文章中也有解释,但我想再补充一下,因为我昨天才刚刚学过这一个知识点,即:“%c”与“ %c"的区别(第二个%c后面有一个空格,第一个没有)
详见我的另一篇博文%c前面加空格的作用
具体的可以自己尝试敲一个代码运行试一下,实践出真知

关于EOF的应用在你看了上面的文章之后可以尝试运行一下下面的程序:

//输入n和n个整数,求n个整数的和
#include<stdio.h>
int main()
{
    int i,n,sum,a;

    printf("请输入n和n个整数")while(scanf("%d",&n) != EOF)
    {
        sum = 0;
        for(i = 1;i <= n;i++)
        {
            scanf("%d",&a);
            sum = sum + a;
        }
        printf("%d\n", sum);
    }


    return 0;
}

另附文章参考EOF的输入与应用

== 如有错误欢迎读者提出与指点,定感激不尽==

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值