3小说网站开发,wordpress 被墙,互联网公司排名2021完整版,怎么知道网站是否被百度收录在这篇文章中#xff0c;我们来详细聊一聊 C 语言标准输入输出头文件 stdio.h 及其常见用法。1. stdio.h 是什么
stdio.h#xff08;Standard Input and Output Header#xff09;是 C 标准库中的一个头文件#xff0c;提供了处理标准输入输出和一些文件操作的函数声明。
它…在这篇文章中我们来详细聊一聊 C 语言标准输入输出头文件 stdio.h 及其常见用法。1. stdio.h 是什么
stdio.hStandard Input and Output Header是 C 标准库中的一个头文件提供了处理标准输入输出和一些文件操作的函数声明。
它包含的主要功能有
标准输入输出stdin, stdout, stderr格式化输入输出printf, scanf, fprintf, fscanf 等字符输入输出getchar, putchar, gets, puts 等文件读写fopen, fclose, fread, fwrite, fgets, fputs 等文件定位fseek, ftell, rewind 等错误处理perror, feof, ferror 等2. 常见数据类型与宏
stdio.h 中不仅有函数声明还包含了一些类型定义和宏。
常见类型
FILE
用于表示一个文件流File Stream的结构体类型内部存储文件状态、缓冲区等信息。
size_t
用于表示对象大小或存储容量的无符号整数类型。常见宏
NULL空指针常量。EOF文件结束标志End Of File通常值为 -1。BUFSIZ缓冲区大小常量。stdin / stdout / stderr分别表示标准输入流、标准输出流和标准错误流。3. 常用输入输出函数
3.1 格式化输出函数
#include stdio.hint printf(const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const char *format, ...);printf → 向标准输出打印数据。fprintf → 向指定文件流打印数据。sprintf → 将格式化后的数据存入字符串不安全可能溢出。snprintf → 将格式化数据存入字符串并限制最大长度推荐替代 sprintf。
示例
#include stdio.h
int main() {int age 25;printf(年龄: %d\n, age);return 0;
}3.2 格式化输入函数
int scanf(const char *format, ...);
int fscanf(FILE *stream, const char *format, ...);
int sscanf(const char *str, const char *format, ...);scanf → 从标准输入读取数据。fscanf → 从指定文件流读取数据。sscanf → 从字符串中读取数据。
示例
#include stdio.h
int main() {int num;printf(请输入一个数字: );scanf(%d, num);printf(你输入的数字是: %d\n, num);return 0;
}⚠️ 注意scanf 在读取字符串时容易发生缓冲区溢出推荐用 fgets 等更安全的函数。3.3 字符输入输出
int getchar(void); // 从 stdin 读取一个字符
int putchar(int c); // 输出一个字符到 stdout
char *gets(char *s); // 从 stdin 读取一行不安全已被移除 C11
char *fgets(char *s, int n, FILE *stream); // 更安全的读取字符串
int puts(const char *s); // 输出字符串并换行示例
#include stdio.h
int main() {char name[20];printf(请输入你的名字: );fgets(name, sizeof(name), stdin);printf(你好, %s, name);return 0;
}3.4 文件操作函数
FILE *fopen(const char *filename, const char *mode);
int fclose(FILE *stream);
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);
char *fgets(char *s, int n, FILE *stream);
int fputs(const char *s, FILE *stream);
int fprintf(FILE *stream, const char *format, ...);示例
#include stdio.h
int main() {FILE *fp fopen(test.txt, w);if (fp NULL) {perror(文件打开失败);return 1;}fprintf(fp, Hello, 文件!\n);fclose(fp);return 0;
}3.5 文件定位函数
int fseek(FILE *stream, long offset, int whence); // 定位文件指针
long ftell(FILE *stream); // 获取当前文件指针位置
void rewind(FILE *stream); // 重置文件指针到开头3.6 错误与结束检测
void perror(const char *s); // 打印最近的错误信息
int feof(FILE *stream); // 检测文件是否到达 EOF
int ferror(FILE *stream); // 检测文件操作是否发生错误4. 使用注意事项
安全性
避免使用 gets已废弃使用 fgets 手动去除换行符代替
缓冲区问题
stdin 默认行缓冲模式stdout 默认行缓冲终端时/全缓冲文件时
文件操作后记得关闭
fclose(fp);
检查返回值
输入输出函数失败时会返回特殊值比如 EOF 或负数。5. 小结
stdio.h 是 C 语言 IO 功能的核心头文件。核心用途格式化输入输出、字符输入输出、文件操作等。常用函数printf、scanf、fgets、fopen、fclose、fread、fwrite。需要注意安全性和返回值的检查。