文章目录
- 1,fgetc/fputc,fgets/fputs,fread/fwrite比较
- 2,按字符输入fgetc(),getc(),getchar()
- 3,按字符输出fputc(),putc(),putchar()
- 4,按行输入gets(),fgets()
- 5,按行输出puts(),fputs()
- 6,按对象读写fread(),fwrite()
- 7,格式化输出printf(),fprintf(),sprintf()
1,fgetc/fputc,fgets/fputs,fread/fwrite比较
|标准IO|效率|文本文件|二进制文件|
|:----------|:---:|:---:|:---:|
|fgetc/fputc|低|可以|可以|
|fgets/fputs|高|可以|不可以|
|fread/fwrite|高|可以|可以|
标准IO |
效率 |
文本文件 |
二进制文件 |
fgetc/fputc
低
可以
可以
fgets/fputs
高
可以
不可以
fread/fwrite
高
可以
可以
<table>
<thead>
<tr>
<th width=25% rowspan=2>标准I/Oth>
<th rowspan=2>效率th>
<th colspan=2>读写文件th>
tr>
<tr>
<th>文本文件th>
<th>二进制文件th>
tr>
thead>
<tbody>
<tr>
<td><code>fgetc/fputccode>td>
<td>低 td>
<td>可以td>
<td>可以td>
tr>
<tr>
<td>fgets/fputstd>
<td>低td>
<td>可以td>
<td><I>不可以I>td>
tr>
<tr>
<td>fread/fwritetd>
<td>高td>
<td>可以td>
<td>可以td>
tr>
tbody>
table>
标准I/O |
效率 |
读写文件 |
文本文件 |
二进制文件 |
fgetc/fputc
低
可以
可以
fgets/fputs
低
可以
不可以
fread/fwrite
高
可以
可以
2,按字符输入fgetc(),getc(),getchar()
下列函数用来输入一个字符:
#include
int fgetc(FILE *stream);
int getc(FILE *stream);
int getchar(void);
- 成功时返回读取的字符; 若到文件末尾或出错时返回EOF
- getchar()等同于fgetc(stdin)
3,按字符输出fputc(),putc(),putchar()
下列函数用来输出一个字符:
#include
int fputc(int c, FILE *stream);
int putc(int c, FILE *stream);
int putchar(int c);
- 成功时返回写入的字符; 出错时返回EOF
- putchar©等同于fputc(c, stdout)
4,按行输入gets(),fgets()
下列函数用来输入一行:
#include
char *gets(char *s);
char *fgets(char *s, int size, FILE *stream);
- 成功时返回s, 到文件末尾或出错时返回NULL
- gets不推荐使用, 容易造成缓冲区溢出
- 遇到’
’或已输入size-1个字符时返回, 总是包含’