C语言基础——输入输出

目录

标准格式输入输出

输入:

格式控制字符串:

地址表项:

格式字符串(scanf与printf)区别:

*修饰符:

scanf()的返回值:

输出:

格式控制字符串:

输出表项:

常用的输出格式及含义:

关于printf()的返回值:

字符输入输出

输入函数:

输出函数:

字符串输入输出

输入:

运行过程:

注意:

输出:


标准格式输入输出

输入

        scanf(),按照格式字符串的格式,从键盘上把数据输入到指定的变量之中

格式控制字符串:

        不能显示提示字符串

地址表项:

        地址表项中的地址给出各变量的地址,地址是由地址运算符“&”后跟变量名组成的。

格式字符串(scanf与printf)区别:

        (1)格式说明符中,可以指定数据的宽度,但不能指定数据的精度               

        (2)输入long类型数据时必须使用%ld,输入double数据必须使用%lf或%le

        (3)附加格式说明符“*”使对应的输入数据不赋给相应的变量

        scanf()函数所用的转换说明符与printf()所用的几乎完全相同。主要区别在于printf()把%f、%e、%E、%g、%G同时用于float类型和double类型,而scanf()只是把他们用于float类型,而用于double类型时要求使用l(字母l)修饰符

*修饰符:

        *在scanf()中提供截然不同的服务,当把它放在%和说明符字母之间时,它使函数跳过相应的输入项目

输出结果:

scanf()的返回值:

scanf()函数返回成功读入的项目的个数。如果它没有读取任何项目(比如它期望接收一个数字而您却输入的一个非数字字符时就会发生这种情况),scanf()返回0

当它检测到“文件末尾”(end of file)时,它返回EOF(EOF在是文件stdio.h中的定义好的一个特殊值,一般,#define指令将EOF的值定义为-1)

输出:

printf(),按照用户指定格式,把指定的数据输出到屏幕上

格式控制字符串:

说明输出表项中个输出项的输出格式,分为格式字符串非格式字符串。非格式字符串在输出的时候原样打印;格式字符串是以%打头的字符串,在“%”后面跟不同格式字符,用来说明输出数据的类型、形式、长度、小数位数等。格式字符串的形式为:% [输出最小宽度] [.精度] [长度] 类型

输出表项:

列出了要输出的项,各输出项之间用逗号分开,输出表项也可以没有,则表示输出的是格式字符串本身。

常用的输出格式及含义:

关于printf()的返回值

rintf函数的返回值是返回所打印的字符的数目。如有输出错误,那么printf()会返回一个负数(printf()的一些老版本会有不同的值)。

字符输入输出

输入函数:

getchar(),接收用户从键盘上输入的一个字符

输出函数:

putchar(),在终端(显示器)输出单个字符 

字符串输入输出

输入:

gets(),从键盘接收字符串

在包含 include <stdio.h>头文件的情况下,可以用gets直接往字符数组里接收字符串

运行过程:

当执行gets函数时,程序会等待用户从键盘输入的字符串,一旦遇到结束标志,即回车,那么之前输入在缓冲区中的字符串则会一起输入到gets中str所指向的内存区域里。此过程与scanf函数类似,最主要的不同在于,scanf接收时的结束标志有空格和回车,而gets不包括空格。也就意味着gets可以接收空格本身作为内容的一部分

注意:

gets不会检查输入的字符串长度,即可能超出字符串数组的长度造成内存溢出

输出:

puts(),打印字符串到控制台

在包含头文件# include <stdio.h>后,即可将想要输出的字符串或者字符数组的地址传入puts即可打印输出

相较于printf(),puts()输出时不需要指定字符串类型,末尾不用加换行符会自动换行

猜你喜欢

转载自blog.csdn.net/m0_74436212/article/details/131263939