C语言入门经典(第四版)10-基本输入和输出操作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C入门经典(第4版) 入门经典(
10.1 输入和输出流 10.1
前面章节主要使用scanf()函数从键盘输入数据,使用printf()函数将数据输 前面章节主要使用scanf()函数从键盘输入数据,使用printf()函数将数据输 出到屏幕上.事实上,使用这些函数指定从哪里输入或输出到哪里去的方式没 有什么特别.因为scanf()函数可以从任何地方接收信息,只要这些信息是字符 有什么特别.因为scanf()函数可以从任何地方接收信息,只要这些信息是字符 流即可.同样,printf()函数也可以将数据输出到任何能接收字符流的地方去. 流即可.同样,printf()函数也可以将数据输出到任何能接收字符流的地方去. 这并不是巧合:C 这并不是巧合:C语言的标准输入输出函数都是独立于设备的,程序员不需要 考虑如何在特定设备上传入传出数据.C 考虑如何在特定设备上传入传出数据.C语言的库函数和操作系统会确保在特 定设备上的操作完全正常.
C入门经典(第4版) 入门经典( 10.2 标准流
C语言有3个在<stdio.h>头文件中预定义的标准流,程序只要包含了这个 语言有3个在<stdio.h>头文件中预定义的标准流,程序只要包含了这个 头文件,就可以使用这些流.这3个标准流分别是stdin,stdout和stderr.在一 头文件,就可以使用这些流.这3个标准流分别是stdin,stdout和stderr.在一 些系统中还可以使用另外两个流stdprn和stdaux,但它们不是C 些系统中还可以使用另外两个流stdprn和stdaux,但它们不是C语言的标准流, 所以编译器不支持它们 .
C入门经典(第4版) 入门经典( 第10章 基本输入和输出操作 10章
本章将详细介绍键盘输入,屏幕输出和打印机输出.本章的内容相当简 单,但要记住许多东西.不过不用熟记,需要时可以再回来参考本章的内容. 与大多数现代编程语言一样,C 与大多数现代编程语言一样,C语言也没有输入输出的能力,所有这类操 作都由标准库中的函数提供.前面各章介绍的许多这类函数提供了键盘输入和 屏幕输出的功能 .
C入门经典(第4版) 入门经典(
10.3.3 输入格式字符串中的字符
可以在输入格式字符串中包含一些不是格式转换指定符的字符.为此, 可以在输入格式字符串中包含一些不是格式转换指定符的字符.为此,必须 指定输入中有这些字符, scanf()函数应读取它们,但不存储它们. 指定输入中有这些字符,且scanf()函数应读取它们,但不存储它们.但这些非 格式转换字符必须和输入流的字符完全相同,只要有一个不同,scanf()就会终 格式转换字符必须和输入流的字符完全相同,只要有一个不同,scanf()就会终 止输入. 止输入.
C入门经典(第4版) 入门经典( 10.3.1 格式化键盘输入
函数scanf()从stdin流中读入字符,并根据格式控制字符串中的格式指定 函数scanf()从stdin流中读入字符,并根据格式控制字符串中的格式指定 符,将它们转换成一个或多个值.scanf()函数的原型如下: 符,将它们转换成一个或多个值.scanf()函数的原型如下: int scanf(char *format, ... ); 格式控制字符串参数的类型是char*,即字符串指针.在函数调用时,它 格式控制字符串参数的类型是char*,即字符串指针.在函数调用时,它 通常显示为显式的变元,如下:. 通常显示为显式的变元,如下:. scanf("%lf", &variable);
C入源自文库经典(第4版) 入门经典(
10.4.1 使用printf()格式输出到屏幕 使用printf()格式输出到屏幕
printf()函数在头文件<stdio.h>中定义,它的一般形式如下: printf()函数在头文件<stdio.h>中定义,它的一般形式如下: int printf(char *format, ...);
C入门经典(第4版) 入门经典( 10.3.9 键盘的非格式化输入
getchar()函数可以从stdin中一次读一个字符,它在<stdio.h>中定义,语 getchar()函数可以从stdin中一次读一个字符,它在<stdio.h>中定义,语 法如下: int getchar(void); getchar()函数不需要变元,它会返回从输入流中读入的字符.注意,这 getchar()函数不需要变元,它会返回从输入流中读入的字符.注意,这 个字符返回为int类型,并显示在屏幕上 个字符返回为int类型,并显示在屏幕上 .
C入门经典(第4版) 入门经典( 10.3 计算机绘图系统的硬件组成
前面介绍过,stdin上的键盘输入有两种形式:一种是格式化输入,主要 前面介绍过,stdin上的键盘输入有两种形式:一种是格式化输入,主要 由scanf()函数提供;另一种是非格式化输入,通过getchar()等函数接收原始的 scanf()函数提供;另一种是非格式化输入,通过getchar()等函数接收原始的 字符数据.这两种形式都很常见,下面详细介绍它们. 格式化键盘输入 输入格式控制字符串 输入格式字符串中的字符 输入浮点数的各种变化 读取十六进制和八进制值 用scanf()读取字符 scanf()读取字符 scanf()的陷阱 scanf()的陷阱 从键盘上输入字符串 键盘的非格式化输入
C入门经典(第4版) 入门经典( 10.3.8 从键盘上输入字符串
<stdio.h>头文件中的gets()函数可以将一整行的文本作为字符串读入.它 <stdio.h>头文件中的gets()函数可以将一整行的文本作为字符串读入.它 的函数原型如下: char *gets(char *str); 这个函数会将连续的字符读入指针str所指的内存中,直到按下回车键为 这个函数会将连续的字符读入指针str所指的内存中,直到按下回车键为 止.它会用终止字符' 0'取代按下回车键时读入的换行符.其返回值与变元相 止.它会用终止字符'\0'取代按下回车键时读入的换行符.其返回值与变元相 同,即存储字符串的地址
前面曾经提过,可以使用格式指定符%x从输入流中读取十六进制值,使 前面曾经提过,可以使用格式指定符%x从输入流中读取十六进制值,使 用格式指定符%o读取八进制值 用格式指定符%o读取八进制值 .
C入门经典(第4版) 入门经典( 10.3.6 用scanf()读取字符 scanf()读取字符
第一个例子尝试过读入字符串,读入字符串还有其他方法.有3 第一个例子尝试过读入字符串,读入字符串还有其他方法.有3个格式指 定符用于读取一个或多个单字节字符.使用格式指定符%c可以读取一个字符, 定符用于读取一个或多个单字节字符.使用格式指定符%c可以读取一个字符, 并将它存储为char类型,如果使用的是%lc,就存储为wchar_t类型.对于字符 并将它存储为char类型,如果使用的是%lc,就存储为wchar_t类型.对于字符 串,可以使用指定符%s %[],如果要将输入存储为宽字符,就使用%ls或 串,可以使用指定符%s或%[],如果要将输入存储为宽字符,就使用%ls或 %l[],其中转换指定符的前缀是L %l[],其中转换指定符的前缀是L的小写.此时要给存储的字符串追加终止字 符'\0',作为最后一个字符.使用格式符%[]或%l[]读入的字符串必须只包含方 0',作为最后一个字符.使用格式符%[]或%l[]读入的字符串必须只包含方 括号内的字符,如果方括号中的第一个字符是^ 括号内的字符,如果方括号中的第一个字符是^时,则读入的字符串不能包含 方括号内^字符后面的任何字符,例如%[aeiou]读入的字符串只能包含元音. 方括号内^字符后面的任何字符,例如%[aeiou]读入的字符串只能包含元音. 碰到不是元音的字符就停止输入.而%[^aeiou]读入的字符串不能包含元音. 碰到不是元音的字符就停止输入.而%[^aeiou]读入的字符串不能包含元音. 碰到元音就停止输入 .
C入门经典(第4版) 入门经典( 10.4 屏幕输出
将数据输出到屏幕的命令行上要比从键盘上读取数据容易多了,因为我 们知道要输出什么数据,而输入时可能输入错误的数据.将格式化数据输出到 stdout流的主要函数是printf().printf()函数可以提供许多不同的格式输出,其 stdout流的主要函数是printf().printf()函数可以提供许多不同的格式输出,其 格式指定符远多于scanf() 格式指定符远多于scanf() . 使用printf()格式输出到屏幕 使用printf()格式输出到屏幕 转义序列 整数输出 输出浮点数 字符输出
C入门经典(第4版) 入门经典( 10.3.7 scanf()的陷阱 scanf()的陷阱
使用scanf()常犯的两个错误如下: 使用scanf()常犯的两个错误如下: 变元必须是指针,最常犯的错误是将变量指定为scanf()的变元时,忘记 变元必须是指针,最常犯的错误是将变量指定为scanf()的变元时,忘记 在变量名的前面加上&符号,不过使用printf()时不需要这个& 在变量名的前面加上&符号,不过使用printf()时不需要这个&字符.此外,如 果变元是数组名或指针变量,也不需要& 果变元是数组名或指针变量,也不需要&符号. 在读字符串时,要确保有足够的空间存放读入的字符串,这个字符串需 包含终止字符' 0',否则,会覆盖内存中的数据,甚至是程序代码. 包含终止字符'\0',否则,会覆盖内存中的数据,甚至是程序代码.
C入门经典(第4版) 入门经典( 10.4.2 转义序列
在printf()和wprintf()函数的格式控制字符串中可以包含空白字符.空白字 printf()和wprintf()函数的格式控制字符串中可以包含空白字符.空白字 符有换行符,回车符,换页符,空格和制表符.它们用以\ 符有换行符,回车符,换页符,空格和制表符.它们用以\开头的转义序列表 示.
C入门经典(第4版) 入门经典( 10.4.3 整数输出
下面介绍一些前面未提及的变化,其中字符宽度和精度指定符最有趣 .
C入门经典(第4版) 入门经典( 10.4.4 输出浮点数
前面介绍了的输出整数的选项,接下来看看输出浮点数的选项 .
C入门经典(第4版) 入门经典( 10.4.5 字符输出
学习了输出数值的各种选项后,接下来看看字符的输出.printf()和 学习了输出数值的各种选项后,接下来看看字符的输出.printf()和 wprintf()函数可以使用4 wprintf()函数可以使用4个输出指定符输出字符数据:单个字符和字符串使用 %c和%s,单个宽字符和宽字符串使用%lc和%ls.前面介绍过%lc和%ls,下 %c和%s,单个宽字符和宽字符串使用%lc和%ls.前面介绍过%lc和%ls,下 面用一个例子说明单个字符的输出 .
C入门经典(第4版) 入门经典( 10.3.2 输入格式控制字符串
在scanf()或wscanf()函数中使用的格式控制字符串不完全类似于printf()中 scanf()或wscanf()函数中使用的格式控制字符串不完全类似于printf()中 的格式控制字符串.在格式控制字符串中添加一个或多个空白字符,如空格' ', 的格式控制字符串.在格式控制字符串中添加一个或多个空白字符,如空格' ', 制表符' t'或换行符'n',scanf()会忽略空白字符,直接读入输入中的下一个非空 制表符'\t'或换行符'n',scanf()会忽略空白字符,直接读入输入中的下一个非空 白字符.在格式控制字符串中只要出现一个空白字符,就会造成无数个连续的 空白字符被忽略.因此,可以在格式字符串内加入任意多个的空白字符,使输 入易于理解.注意,scanf()默认忽略空白字符,但使用%c,%[]或%n指定符 入易于理解.注意,scanf()默认忽略空白字符,但使用%c,%[]或%n指定符 读取数据时除外 .
C入门经典(第4版) 入门经典( 10.3.4 输入浮点数的各种变化
scanf() 使用scanf()函数读取格式化的浮点数时,不仅可以选择格式指定符,而 使用scanf()函数读取格式化的浮点数时,不仅可以选择格式指定符,而 且可以输入不同形式的数 .
C入门经典(第4版) 入门经典( 10.3.5 读取十六进制和八进制值