22-c语言输入输出函数
本文最后更新于 2026-02-28,文章内容可能已经过时。
C语言的输入输出函数主要分为标准I/O(用于控制台交互)和文件I/O(用于文件操作),核心函数包括
printf()/scanf()(格式化输入输出)、getchar()/putchar()(字符操作)及fopen()/fclose()/fprintf()/fscanf()(文件操作),所有函数均需包含<stdio.h>头文件,其中printf和scanf是程序交互的基础,文件操作需遵循"打开-读写-关闭"流程,是C语言程序与用户或外部数据交互的核心机制。
C语言中的输入输出(I/O)操作是程序与用户或外部数据源进行交互的基本方式。所有输入输出函数都定义在<stdio.h>头文件中,需要在程序开头包含该头文件。
一、标准输入输出函数
1. 输出函数
(1) printf()
- 功能:向标准输出设备(通常是屏幕)发送格式化的字符串
- 原型:
int printf(const char *format, ...); - 常见格式说明符:
%d:十进制整数%f:浮点数%c:单个字符%s:字符串%x:十六进制整数%.2f:保留两位小数的浮点数
示例:
#include <stdio.h>
int main() {
int age = 30;
float height = 1.75;
printf("Age: %d, Height: %.2f meters\n", age, height);
return 0;
}
(2) putchar()
-
功能:输出单个字符到标准输出设备
-
原型:
int putchar(int c); -
示例:
putchar('A'); // 输出字符 'A'
(3) puts()
-
功能:输出字符串并自动追加换行符
-
原型:
int puts(const char *s); -
示例:
puts("Hello, World!"); // 输出 "Hello, World!" 并换行
2. 输入函数
(1) scanf()
- 功能:从标准输入设备(通常是键盘)读取格式化输入
- 原型:
int scanf(const char *format, ...); - 注意事项:
- 变量前必须加
&符号(地址运算符),字符串(字符数组)除外 - 输入时需严格匹配格式说明符
- 变量前必须加
示例:
#include <stdio.h>
int main() {
int age;
float height;
printf("Enter your age and height: ");
scanf("%d %f", &age, &height);
printf("Age: %d, Height: %.2f meters\n", age, height);
return 0;
}
(2) getchar()
-
功能:从标准输入设备读取一个字符
-
原型:
int getchar(void); -
返回值:正常返回字符的ASCII码值,出错返回-1
-
示例:
char c = getchar(); // 读取一个字符
(3) gets()
- 功能:从标准输入设备读取一行字符串
- 注意:有安全风险,不推荐使用,建议使用
fgets()替代 - 原型:
char *gets(char *s);
二、文件输入输出函数
1. 文件操作函数
(1) fopen()
- 功能:打开文件
- 原型:
FILE *fopen(const char *filename, const char *mode); - 常见模式:
"r":只读"w":只写(覆盖)"a":追加"rb":二进制读"wb":二进制写
(2) fclose()
- 功能:关闭文件
- 原型:
int fclose(FILE *stream);
(3) fprintf()
- 功能:向文件打印格式化输出
- 原型:
int fprintf(FILE *stream, const char *format, ...);
(4) fscanf()
- 功能:从文件读取格式化输入
- 原型:
int fscanf(FILE *stream, const char *format, ...);
(5) fread() 和 fwrite()
- 功能:用于二进制文件的读写
- 原型:
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
文件操作示例:
#include <stdio.h>
int main() {
FILE *fp = fopen("example.txt", "w");
if (fp == NULL) {
perror("Error opening file");
return -1;
}
fprintf(fp, "Hello, World!\n");
fclose(fp);
return 0;
}
三、常见问题与注意事项
-
输入缓冲区清理:
- 输入函数可能会留下垃圾(如回车符),影响后续输入
- 清理方法:
while(getchar() != '\n');或在格式字符串中使用空格
-
变量前加
&:- 在
scanf()中,除字符串外,所有变量前都需要加&
- 在
-
格式说明符匹配:
- 输入输出时,格式说明符必须与数据类型匹配
- 例如:
%d对应int,%f对应float
-
头文件包含:
- 所有输入输出函数都需要
#include <stdio.h>
- 所有输入输出函数都需要
四、总结
C语言的输入输出函数是程序与用户交互的基础,主要分为标准输入输出(用于控制台)和文件输入输出(用于文件操作)。掌握printf()和scanf()是学习C语言的第一步,它们能处理大多数基本的输入输出需求。随着程序复杂度增加,需要使用文件操作函数处理更复杂的输入输出场景。
这些函数构成了C语言程序交互的基石,是编写实用程序不可或缺的部分。
- 感谢你赐予我前进的力量

