6.C语言的基础运用——关于输入输出格式

C语言控制台程序主要以scanf作为输入语句,printf作为输出语句,但是这个输入输出语句在单片机应用中并不会用到(或者说很少用到,可能在使用HAL库编写stm32相关程序的时候会用到printf)。但在学习C语言的过程中会经常使用,所以这里还是稍微提一下。

一、输出

先讲输出语句printf。

在前面环境搭建的笔记中有出现过下面的例子:

#include <stdio.h>

int main(){
	printf("Hello World!");
	return 0;
}

这就是printf语句最简单的应用,直接在括号中打出需要输出的字符串即可(记得带上双引号)。这就是效果:
image

当然也可以输出中文字符,这个自己去测试即可(双引号一定要是英文的!)

但是如果要输出变量的话,就需要设置输出字符的格式了,这里先给出一个例子:

#include <stdio.h>

int main(){
	int a;char b;float c;
	a=411;b='A';c=3.1415;
	printf("整型a为%d,字符型b为%c,浮点型c为%f",a,b,c);
	return 0;
}

输出显示为:
image

在printf语句中,可以先自己寻找一下规律。特别关注其中的%d,%c,%f。我把它们理解为占位符(经查阅资料确实叫占位符)。整型数据都用%d来表示,字符型数据用%c表示,浮点型为%f,下面给出我们常用的表示各种数据类型需要用到的不同的占位符。
%d------int,%f------float,%s------string或者是char数组,%c------char,%fl------double
更多占位符查看

所有占位符在输出时都会依次被后面的变量替代,如果占位符与变量的数据类型不一致,将会将变量进行数据转换之后输出(切记变量本身类型并不发生改变,只是在输出的时候临时转变了输出格式)。

现在我们可以知道,除了特殊的%d等类似的占位符,所有被双引号括住的内容都会原封不动的输出。但如果我们想让他输出’%‘这个字符又该怎么办呢。这里再提一个转义字符反斜杠,如下图:
image

例如:

#include <stdio.h>

int main(){
	printf("a\nb\nc");
	return 0;
}

输出为:
image

反斜杠n的意思就是输出一个回车。除了回车,转义字符用于输出容易被识别为程序语言的符号例如单引号双引号反斜杠,包括我们上面提到的%也可以通过查找ascii表用转义字符反斜杠加16进制来输出。

输入

再来讲输入scanf

scanf没有什么特别特殊的,直接举例来看:

#include <stdio.h>

int main(){
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	printf("%d%d%d",a,b,c);
	return 0;
}

这时运行程序输入一个数字,默认以空格分开(这个分隔的符号是可以更改的,这里不展开讲了,用空格就行),输入完三个之后回车,即可看到程序打印出输出的值:
image

如果在未输入完三个,比如输入了两个就按回车,他并不会输出内容,这时你需要再补充输入一个之后他才会输出。
scanf语句与printf唯一的区别就是在变量前面加上了取地址符&,关于变量的地址又是一个比较庞大且不好理解的内容,而且在单片机基础的应用中并不常用,这里就不展开讲,可以参考网上的资料。

posted @ 2023-12-02 15:31  Fantastic_fan  阅读(39)  评论(0)    收藏  举报