关于C语言输入输出的逗号问题(小细节)

简介: C语言的输入输出必须要遵循scanf和printf的格式,就是你是什么格式你就要输入什么。

C语言的输入输出必须要遵循scanf和printf的格式,就是你是什么格式你就要输入什么。


一、输入问题

#include <stdio.h>

int main()

{   int a,b;

   scanf("%d,%d",&a,&b);

printf("a+b=%d",a+b);

   return 0;

}

1.png

这个程序我们可以看到它运行的结果是错误的!为什么呢,因为我们在scanf中已经指定了输入格式,输入格式是两个数中间用逗号隔开,所以我们输入时也必须在输入的两个数之间加逗号隔开我们再次输入试一下

2.png

这样就对了!哪假如把逗号改成别的字符,还需要输入别的字符吗?


#include <stdio.h>

int main()

{   int a,b;

   scanf("%d+%d",&a,&b);

printf("a+b=%d",a+b);

   return 0;

}

我们把","改成了"+",我们再试试直接用空格隔开两个数,看看结果对吗?

3.png

答案是错的,那我们在输入的两个数之间加入逗号呢?

4.png

答案还是错的,最后我们试着也在输入的时候在两个数之间加入"+"5.png

哇哦!答案终于对了!所以我们可以得出一个结论就是scanf中的输入格式是什么样的,我们输入时也就必须和其中格式完全一致,否则就会出现读取错误。


我们平时的输入一般以空格隔开,一般不会以逗号隔开,所以我们将程序改成我们日常习惯的输入然后再试试结果。


#include <stdio.h>

int main()

{   int a,b;

   scanf("%d %d",&a,&b);

printf("a+b=%d",a+b);

   return 0;

}

我们将程序改成这样,我们再输入试试。

6.png

没问题了!那我们要是把scanf中的空格去掉呢?


#include <stdio.h>

int main()

{   int a,b;

   scanf("%d%d",&a,&b);

printf("a+b=%d",a+b);

   return 0;

}

我们把程序改成这样,按理是不是我们输入的时候不用空格直接连着输入两个数呢?不!如果你输入三位数,这样程序怎么知道你是把前两位赋值给了a,还是把前1位赋值给了a呢?这样会造成歧义,所以如果scanf中两个%d之间什么也不加就是默认空格隔开了,我们再试一下程序看看!

11.png

好的!没有问题!这样我们就搞清了输入格式。



目录
相关文章
|
6月前
|
C语言
C语言对文件的输入输出
C语言对文件的输入输出
34 0
|
5月前
|
存储 C语言
【C语言刷题系列】对数字添加逗号
【C语言刷题系列】对数字添加逗号
|
6月前
|
C语言 C++ 数据格式
【C++对于C语言的扩充】C++与C语言的联系,命名空间、C++中的输入输出以及缺省参数
【C++对于C语言的扩充】C++与C语言的联系,命名空间、C++中的输入输出以及缺省参数
|
5月前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
45 1
|
5月前
|
C语言
C语言标准的输入输出
C语言标准的输入输出
41 0
|
6月前
|
存储 C语言
C语言中的数据输入输出
C语言中的数据输入输出
68 0
|
6月前
|
存储 C语言
C语言中的字符串访问与输入输出技术详解
C语言中的字符串访问与输入输出技术详解
80 0
|
6月前
|
C语言
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
72 0
|
12月前
|
存储 C语言
C语言 关于输入输出与结束符“\0”
C语言 关于输入输出与结束符“\0”
407 1
|
缓存 C语言
C语言——数据的输入输出
C语言——数据的输入输出