关于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

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



目录
相关文章
|
1天前
|
C语言
C语言对文件的输入输出
C语言对文件的输入输出
18 0
|
1天前
|
C语言 C++ 数据格式
【C++对于C语言的扩充】C++与C语言的联系,命名空间、C++中的输入输出以及缺省参数
【C++对于C语言的扩充】C++与C语言的联系,命名空间、C++中的输入输出以及缺省参数
|
1天前
|
C语言
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
31 0
|
6月前
|
存储 C语言
C语言 关于输入输出与结束符“\0”
C语言 关于输入输出与结束符“\0”
120 1
|
7月前
|
缓存 C语言
C语言——数据的输入输出
C语言——数据的输入输出
|
9月前
|
C语言
C语言给数字加逗号
C语言给数字加逗号
118 0
|
11月前
|
C语言 容器
【C语言—零基础第六课】输入输出语句格式与复合语句
在生活中我们把水倒进杯子里边就是赋值,杯子是一个容器用来存放东西的。在C语言中变量相当于一个容器用来存放值的,变量类型的不同存放的东西也不同。例如:杯子是装水的、相框是放照片的、手枪的弹夹是用来装子弹的,不同事物用着不同的容器来装。 C语言中用=来表示赋值。两个等于号==在C语言中表示判断。
100 0
|
11月前
|
C语言
C语言刷题系列——2.输入输出练习
C语言刷题系列——2.输入输出练习
137 0
|
11月前
|
存储 C语言
C语言——字符串&&格式化输入输出(学习分享)
C语言——字符串&&格式化输入输出(学习分享)
90 0
c语言复习之标准输入输出(三)
c语言复习之标准输入输出(三)

热门文章

最新文章