【C语言】---- 标准输入输出与字符输入输出
标准输入输出和字符输入输出是C语言中两种不同的输入输出方式,各自适用于不同的数据类型和场景,合理选择和使用这些函数可以提高程序的灵活性和效率。
1 标准输入输出函数
1.1 标准输入输出函数简介
标准输入输出是C语言中最常用的输入输出方式,它使用标准输入流和标准输出流来进行数据的输入和输出。标准输入流通常表示键盘输入,而标准输出流通常表示控制台输出。这些函数可以实现对文本数据的输入和输出,是C语言中最基本的输入输出方式。它们常用于与用户交互、显示程序输出结果等场景。
1.2 printf函数
printf
是 C 标准库中用于向标准输出流(通常是控制台)输出格式化字符串的函数之一。它的原型定义在 <stdio.h>
头文件中,具体格式如下:
int printf(const char *format, ...);
这个函数接受一个或多个参数:
format
:一个以字符串形式表示的格式化控制字符串,用于指定输出的格式。该字符串可以包含普通字符和格式控制符。...
:表示可变数量的参数列表,用于传递要格式化输出的数据。
printf
函数根据指定的格式控制字符串,将数据格式化输出到标准输出流,并返回输出的字符数(不包括终止的 null 字符)。如果发生错误,则返回一个负值。
在格式控制字符串中,格式控制符以 %
字符开头,后跟一个或多个字母,表示要输出的数据类型和格式。常见的格式控制符包括 %d
(整数)、%f
(浮点数)、%c
(字符)、%s
(字符串)等。
以下是一个示例代码,演示了如何使用 printf
函数输出格式化字符串:
#include <stdio.h>
int main() {
int num = 10;
float pi = 3.14159;
char ch = 'A';
char str[] = "Hello, world!";
// 使用 printf 函数输出格式化字符串
printf("整数:%d\n", num);
printf("浮点数:%f\n", pi);
printf("字符:%c\n", ch);
printf("字符串:%s\n", str);
return 0;
}
这个程序使用 printf
函数输出了一个整数、一个浮点数、一个字符和一个字符串。注意,在格式控制字符串中使用相应的格式控制符,并在后面的参数列表中传递要输出的数据。
1.2.1 printf函数的转换说明
转换说明 | 功能含义 |
---|---|
%c | 输出单个字符 |
%d | 输出有符号十进制整数 |
%u | 输出无符号十进制整数 |
%o | 输出八进制整数 |
%x | 输出十六进制整数0f |
%X | 输出十六进制整数0F |
%f | 输出十进制浮点数 |
%s | 输出字符串 |
%p | 输出指针 |
%% | 输出% |
1.2.2 printf函数中修饰符的使用
修饰符 | 功能含义 |
---|---|
数字 | 最小字段宽度,如“%4d” |
.数字 | 精度,如“%.2f” |
- | 左对齐 |
+ | 有符号值若为正,则显示+;有符号值若为负,则显示- |
空格 | 有符号值若为正,则显示空格;有符号值若为负,则显示- |
1.2.3 printf函数的后缀转换符
在printf
函数中,回车符等转换符用于控制输出格式。下面是一些常用的转换符及其含义:
\n
:换行符,用于在输出中换行。\t
:水平制表符,用于在输出中进行水平对齐。\b
:退格符,用于删除前一个字符。\r
:回车符,将光标移到当前行的开头,用于覆盖之前输出的内容。\\
:反斜杠,用于输出反斜杠字符本身。
例如,如果要在printf
中打印一个换行符,可以使用\n
转换符:
printf("Hello, world!\n");
这将在输出中打印 "Hello, world!" 后换行。
同样,如果要在输出中打印一个制表符,可以使用\t
转换符:
printf("Name:\tJohn\n");
printf("Name:\tEd\n");
printf("Name:\tJack\n");
printf("Name:\tJey\n");
这将在输出中打印 "Name:",然后在水平方向上对齐 "John"。
类似地,其他转换符也可以用于控制输出格式。
1.3 scanf函数
scanf
是 C 标准库中用于从标准输入流(通常是键盘)读取格式化数据的函数之一。它的原型定义在 <stdio.h>
头文件中,具体格式如下:
int scanf(const char *format, ...);
这个函数接受一个或多个参数:
format
:一个以字符串形式表示的格式化控制字符串,用于指定输入的格式。该字符串可以包含普通字符和格式控制符。...
:表示可变数量的参数列表,用于传递要读取的数据。
scanf
函数根据指定的格式控制字符串,从标准输入流中读取数据,并根据格式进行解析和存储。成功读取的数据会按照相应的数据类型存储到对应的参数中。函数返回成功读取并存储的参数数量,如果读取失败或到达文件结尾,则返回一个负值。
在格式控制字符串中,格式控制符以 %
字符开头,后跟一个或多个字母,表示要读取的数据类型和格式。常见的格式控制符包括 %d
(整数)、%f
(浮点数)、%c
(字符)、%s
(字符串)等。
以下是一个示例代码,演示了如何使用 scanf
函数从标准输入流读取格式化数据:
#include <stdio.h>
int main() {
int num;
float pi;
char ch;
char str[100];
// 使用 scanf 函数读取格式化数据
printf("请输入一个整数:");
scanf("%d", &num);
printf("请输入一个浮点数:");
scanf("%f", &pi);
printf("请输入一个字符:");
scanf(" %c", &ch); // 注意在 %c 前面加一个空格,以消耗掉之前的换行符
printf("请输入一个字符串:");
scanf("%s", str);
// 输出读取到的数据
printf("整数:%d\n", num);
printf("浮点数:%f\n", pi);
printf("字符:%c\n", ch);
printf("字符串:%s\n", str);
return 0;
}
这个程序使用 scanf
函数分别读取了一个整数、一个浮点数、一个字符和一个字符串,并将它们存储到相应的变量中。然后,使用 printf
函数输出这些变量的值。
2 字符输入输出函数
2.1 字符输入输出函数简介
字符输入输出是C语言中用于处理单个字符的输入输出方式,它不涉及格式化的字符串,而是处理单个字符的读取和输出。这些函数通常用于实现简单的字符处理逻辑,如编写字符处理函数、实现简单的控制台交互等。
2.2 putchar函数
putchar
是 C 标准库中用于向标准输出流(通常是控制台)输出一个字符的函数之一。它的原型定义在 <stdio.h>
头文件中,具体格式如下:
int putchar(int c);
这个函数接受一个参数:
c
:要输出的字符,通常以整数形式传递给函数。
putchar
函数会将指定的字符写入到标准输出流,并返回写入的字符。如果成功写入字符,则返回字符的整数形式;如果发生错误,则返回一个表示错误的负值(通常是 EOF
)。
以下是一个示例代码,演示了如何使用 putchar
函数向标准输出流输出一个字符:
#include <stdio.h>
int main() {
char ch = 'A';
// 使用 putchar 函数输出字符
putchar(ch);
// 输出换行符
putchar('\n');
return 0;
}
这个程序定义了一个字符变量 ch
,然后使用 putchar
函数输出该字符。注意,putchar
函数也可以接受字符的整数形式作为参数,因此可以直接传递字符的 ASCII 码值。
2.3 getchar函数
getchar
是 C 标准库中用于从标准输入流(通常是键盘)读取一个字符的函数之一。它的原型定义在 <stdio.h>
头文件中,具体格式如下:
int getchar(void);
这个函数不接受任何参数。
getchar
函数会从标准输入流中读取一个字符,并返回读取到的字符的 ASCII 码值(作为一个整数)。如果在读取字符之前已经到达文件结尾或者发生了错误,则返回一个表示错误的负值(通常是 EOF
)。
以下是一个示例代码,演示了如何使用 getchar
函数从标准输入流读取一个字符并输出它:
#include <stdio.h>
int main() {
int ch;
// 使用 getchar 函数读取一个字符
ch = getchar();
// 输出读取到的字符
printf("你输入的字符是:%c\n", ch);
return 0;
}
这个程序调用 getchar
函数读取一个字符,并将读取到的字符保存在变量 ch
中,然后使用 printf
函数输出这个字符。
本文来自博客园,作者:晚风也温柔,转载请注明原文链接:https://www.cnblogs.com/zxr-blog/p/18162136