C语言输入输出函数的汇总

这里主要记录输入函数(在遇到空格 换行等空白字符)。

先汇总一下常见输入输出函数

getchar,putchar        gets,puts        scanf,printf        

文件中 (getc,putc  fgetc,fputc)(前者可能是宏,后者是函数)        fgets,fputs        fscanf,fprintf        

getchar可以读取空白字符,包括换行符 \n

gets读取字符串包括空白字符,遇到换行符结束

scanf("%s",    ) %s 不能读取空白字符;scanf("%c",   )  %c  可以读取任意一个字符包括空白字符

C语言中的输入输出函数主要集中在标准输入输出库(stdio.h)中。以下是标准C库中常用的输入输出函数的全面列表:

### 字符输入输出函数

- **`getc`**:从指定的文件流中读取一个字符(可能是宏)。
  ```c
  int getc(FILE *stream);
  ```
- **`fgetc`**:从指定的文件流中读取一个字符(总是函数)。
  ```c
  int fgetc(FILE *stream);
  ```
- **`getchar`**:从标准输入读取一个字符,相当于 `getc(stdin)`。
  ```c
  int getchar(void);
  ```

- **`putc`**:向指定的文件流写入一个字符(可能是宏)。
  ```c
  int putc(int char, FILE *stream);
  ```
- **`fputc`**:向指定的文件流写入一个字符(总是函数)。
  ```c
  int fputc(int char, FILE *stream);
  ```
- **`putchar`**:向标准输出写入一个字符,相当于 `putc(char, stdout)`。
  ```c
  int putchar(int char);
  ```

### 字符串输入输出函数

- **`gets`**:从标准输入读取一行字符(不推荐使用,因为存在缓冲区溢出风险)。
  ```c
  char *gets(char *str);
  ```
- **`fgets`**:从指定的文件流中读取一行字符。
  ```c
  char *fgets(char *str, int n, FILE *stream);
  ```

- **`puts`**:向标准输出写入一个字符串,并添加一个换行符。
  ```c
  int puts(const char *str);
  ```
- **`fputs`**:向指定的文件流写入一个字符串。
  ```c
  int fputs(const char *str, FILE *stream);
  ```

### 格式化输入输出函数

- **`printf`**:向标准输出写入格式化数据。
  ```c
  int printf(const char *format, ...);
  ```
- **`fprintf`**:向指定的文件流写入格式化数据。
  ```c
  int fprintf(FILE *stream, const char *format, ...);
  ```
- **`sprintf`**:将格式化数据写入字符串。
  ```c
  int sprintf(char *str, const char *format, ...);
  ```
- **`snprintf`**:将格式化数据写入字符串,限制写入长度。
  ```c
  int snprintf(char *str, size_t size, const char *format, ...);
  ```

- **`scanf`**:从标准输入读取格式化数据。
  ```c
  int scanf(const char *format, ...);
  ```
- **`fscanf`**:从指定的文件流读取格式化数据。
  ```c
  int fscanf(FILE *stream, const char *format, ...);
  ```
- **`sscanf`**:从字符串读取格式化数据。
  ```c
  int sscanf(const char *str, const char *format, ...);
  ```

### 文件输入输出函数

- **`fopen`**:打开文件并返回文件指针。
  ```c
  FILE *fopen(const char *filename, const char *mode);
  ```
- **`freopen`**:重定向文件流。
  ```c
  FILE *freopen(const char *filename, const char *mode, FILE *stream);
  ```
- **`fclose`**:关闭文件流。
  ```c
  int fclose(FILE *stream);
  ```

- **`fflush`**:刷新文件流。
  ```c
  int fflush(FILE *stream);
  ```

- **`fread`**:从文件流读取数据块。
  ```c
  size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
  ```
- **`fwrite`**:向文件流写入数据块。
  ```c
  size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
  ```

### 文件定位和状态函数

- **`fseek`**:移动文件指针位置。
  ```c
  int fseek(FILE *stream, long int offset, int whence);
  ```
- **`ftell`**:获取文件指针当前位置。
  ```c
  long int ftell(FILE *stream);
  ```
- **`rewind`**:重置文件指针位置。
  ```c
  void rewind(FILE *stream);
  ```

- **`feof`**:检查文件流是否到达文件末尾。
  ```c
  int feof(FILE *stream);
  ```
- **`ferror`**:检查文件流是否发生错误。
  ```c
  int ferror(FILE *stream);
  ```
- **`clearerr`**:清除文件流的错误和 EOF 标志。
  ```c
  void clearerr(FILE *stream);
  ```

### 文件描述符函数

- **`fileno`**:获取文件流的文件描述符。
  ```c
  int fileno(FILE *stream);
  ```

### 临时文件函数

- **`tmpfile`**:创建临时二进制文件。
  ```c
  FILE *tmpfile(void);
  ```
- **`tmpnam`**:生成唯一的临时文件名。
  ```c
  char *tmpnam(char *str);
  ```

这些函数涵盖了C语言中处理输入输出操作的主要工具,从基本字符和字符串处理,到复杂的格式化和文件操作。熟悉这些函数有助于在不同的输入输出场景中编写高效、可靠的C代码。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值