C语言基础知识(2)--标准输入输出

描述

1.标准输出printf

      printf是C语言的标准输出函数,一般用于向标准输出设备按规定格式输出信息。

      函数原型如下:

#include < stdio.h >
int printf(const char *format, ...);

      printf函数使用格式为:printf(“<格式化字符串>”,参量表);

      printf()是C语言标准库函数,在stdio.h中定义。输出的字符串除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

      字符串常量原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式控制字符串和各输出项在数量和类型上应该一一对应。其中格式控制字符串是以%开头的字符串,在%后面跟有各种格式控制符,以说明输出数据的类型、宽度、精度等。

  • 格式控制符说明

控制符

说明

%c

输出一个字符(char)

%d

输出十进制整数(int)

%hhd

输出一个字节的整数(char)

%hd

输出两个字节的整数(short)

%ld

输出长整型(long)

%md

m指输出字段宽度,若数据位数小于m,则左边以空格补齐,若大于m,则按实际位数输出。输出的数据按照右边对齐,一共占m位,所有类型都支持指定输出字段宽度。在%后面加上-可实现数据左对齐。

%u

输出无符号整数(unsigned int)。输出无符号时也可以用%d,此时会将无符号转换为有符号输出。

%lu

输出无符号长整数(unsigned long)

%f

输出浮点型(float),以小数形式输出。不指定字段宽度,由系统自动指定,整数部分全部输出,小数部分输出6位,超过6位的四舍五入。

%.mf

输出实数时小数点后保留 m 位,注意 m 前面有个点。比如: %.2f。

%lf

(long double 使用%lf 输出)

%o 或%#o

八进制输出,%#o会自动显示前缀

%x 或 %X或 %#x

十六进制输出

%s

字符串输出

%p

输出地址

%%

输出字符%

%t

输出水平制表符

2.标准输入printf

      scanf()是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。

#include < stdio.h >

int scanf(const char *format, ...);

      scanf()是从标准输入(标准输入设备,一般指向键盘)中读内容的通用子函数;可以通过说明的格式读入多个字符,并保存在对应地址的变量中。

      在使用scanf函数时,主要注意一下读取字符类型数据问题;scanf是从标准输入缓冲区中读取输入的数据,而%c的字符输入格式会接收回车字符和空格字符,在输入第一个 scanf时输入字符后按回车结束,输入缓冲中保存了这个回车符,遇到第二个scanf时,它自动把这个回车符赋给了后面的%c。而如果第二个scanf的输入格式不是%c时,由于格式不匹配,这个回车符会被自动忽略, 所以在连续输入两个%c的格式时会出现后面%c获取不到正确。

      输入示例:

#include < stdio.h >
int main(int argc,char **argv)
{
    int a;
    char b;
    float c;
    scanf("%d %c%f",&a,&b,&c);//%d和%c中间有空格
    printf("a=%dn",a);
    printf("b=%cn",b);
    printf("c=%fn",c);
}
[root@xsw c_2020]# ./a.out 
输入整型、字符型、浮点型:12 a 12.34  #输入时也必须在12和a之间加空格
a=12
b=a
c=12.340000

3.输出函数名和行号

#include < stdio.h >
int main()
{

	/*
		't' --制表符(相当于TAB键)
		__FILE__  文件名
		__FUNCTION__(或__func__)  函数名
		__LINE__    行号
		__DATE__    日期显示
		__TIME__    时间显示
	*/
	printf("[%s] %s line:%dn",__FILE__,__func__,__LINE__);
	printf("time:%s--%sn",__DATE__,__TIME__);
}
输入输出

4.printf输出字体颜色

      在有些时候我们希望通过printf输出的内容以不同的颜色在终端展示,这样在调试过程看起来更加直观。

      printf输出颜色时的控制命令:/033[A1;A2;A3m

      /033[为固定开头;
      m为固定结尾;
      A1表示属性;
      A2表示字体颜色;
      A3表示背景颜色;

  • A1参数

属性代码

功能

0

重置所有属性

1

高亮/加粗

2

暗淡

4

下划线

5

闪烁

8

反转

8

隐藏

  • A2属性

属性代码

功能

30

黑色

31

红色

32

绿色

33

黄色

34

蓝色

35

品红

36

青色

37

白色

  • A3属性

属性代码

功能

40

黑色

41

红色

42

绿色

43

黄色

44

蓝色

45

品红

46

青色

47

白色

  • 示例
#include < stdio.h >
int main()
{
	printf("�33[1;;41m%s�33[0mn", "Hello World!");//字体加粗,背景为红色
	//加下划线,字体颜色为黑色,背景为白色
	printf("�33[4;30;47m%s�33[0mn", "Hello World!");	
	printf("�33[5m%s�33[0mn", "Hello World!");//字体闪烁
	printf("�33[;34m%s�33[0mn", "Hello World!");//设置字体为绿色
	printf("�33[;;42m%s�33[0mn", "Hello World!");//设置设置背景为绿色
}
输入输出
  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分