C语言提供了一组标准库函数,用于处理输入和输出操作。这些函数主要定义在<stdio.h>
头文件中,涵盖了从标准输入输出(如键盘和屏幕)到文件操作的各种需求。以下是一些常用的C语言输入输出函数及其简要说明:
🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。CSDN优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:
gylzbk
)
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。
C语言输入输出函数
1. 标准输入输出函数
1.1 printf
printf
函数用于将格式化的输出打印到标准输出(通常是屏幕)。
#include <stdio.h>
int main() {
int a = 10;
float b = 3.14;
char c = 'A';
printf("Integer: %d\n", a);
printf("Float: %.2f\n", b);
printf("Character: %c\n", c);
return 0;
}
1.2 scanf
scanf
函数用于从标准输入(通常是键盘)读取格式化输入。
#include <stdio.h>
int main() {
int a;
float b;
char c;
printf("Enter an integer, a float, and a character: ");
scanf("%d %f %c", &a, &b, &c);
printf("You entered: %d, %.2f, %c\n", a, b, c);
return 0;
}
1.3 gets
和 puts
gets
函数用于从标准输入读取一行字符串。puts
函数用于将字符串输出到标准输出。
#include <stdio.h>
int main() {
char str[100];
printf("Enter a string: ");
gets(str); // 注意:gets函数不安全,可能导致缓冲区溢出,建议使用fgets替代
puts("You entered:");
puts(str);
return 0;
}
1.4 fgets
和 fputs
fgets
函数用于从标准输入读取一行字符串,指定最大读取长度。fputs
函数用于将字符串输出到标准输出。
#include <stdio.h>
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
printf("You entered:");
fputs(str, stdout);
return 0;
}
2. 文件输入输出函数
2.1 fopen
和 fclose
fopen
函数用于打开一个文件,并返回一个文件指针。fclose
函数用于关闭文件。
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "w");
if (file == NULL) {
perror("Failed to open file");
return 1;
}
fclose(file);
return 0;
}
2.2 fprintf
和 fscanf
fprintf
函数用于将格式化输出写入文件。fscanf
函数用于从文件读取格式化输入。
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "w");
if (file == NULL) {
perror("Failed to open file");
return 1;
}
fprintf(file, "Hello, World!\n");
fclose(file);
file = fopen("example.txt", "r");
if (file == NULL) {
perror("Failed to open file");
return 1;
}
char str[100];
fscanf(file, "%s", str);
printf("Read from file: %s\n", str);
fclose(file);
return 0;
}
2.3 fgets
和 fputs
(文件)
fgets
函数用于从文件读取一行字符串。fputs
函数用于将字符串写入文件。
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "w");
if (file == NULL) {
perror("Failed to open file");
return 1;
}
fputs("Hello, World!\n", file);
fclose(file);
file = fopen("example.txt", "r");
if (file == NULL) {
perror("Failed to open file");
return 1;
}
char str[100];
fgets(str, sizeof(str), file);
printf("Read from file: %s\n", str);
fclose(file);
return 0;
}
2.4 fread
和 fwrite
fread
函数用于从文件读取数据块。fwrite
函数用于将数据块写入文件。
#include <stdio.h>
int main() {
FILE *file = fopen("example.bin", "wb");
if (file == NULL) {
perror("Failed to open file");
return 1;
}
int data[] = {1, 2, 3, 4, 5};
fwrite(data, sizeof(int), 5, file);
fclose(file);
file = fopen("example.bin", "rb");
if (file == NULL) {
perror("Failed to open file");
return 1;
}
int readData[5];
fread(readData, sizeof(int), 5, file);
for (int i = 0; i < 5; i++) {
printf("%d ", readData[i]);
}
printf("\n");
fclose(file);
return 0;
}
2.5 fseek
和 ftell
fseek
函数用于移动文件指针到指定位置。ftell
函数用于获取当前文件指针的位置。
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "w+");
if (file == NULL) {
perror("Failed to open file");
return 1;
}
fputs("Hello, World!\n", file);
fseek(file, 0, SEEK_SET); // 移动文件指针到文件开头
char str[100];
fgets(str, sizeof(str), file);
printf("Read from file: %s\n", str);
long pos = ftell(file); // 获取当前文件指针位置
printf("Current position: %ld\n", pos);
fclose(file);
return 0;
}
这些输入输出函数为C语言程序提供了灵活的输入输出操作能力,涵盖从标准输入输出到文件操作的各个方面。掌握这些函数可以帮助程序员编写高效、健壮的C语言程序。