C语言中fgets(...)从流中读入输入,相反fputs(...)向文件写入数据。
对于ANSI C 程序,运行时系统会打开至少三个流,这3个流包括:
1. 标准输入 standard input . 标准定义为stdin.
2 标准输出 standard output. 标准定义为stdout
3. 标准错误 standard error. 标准定义为stderr.
同时用FILE 结构指向这三个流。。
fputs(...)用于向这三个流写入数据。
原型 int fputs(char *s, FILE *stream);
s 为字符指针, 这儿既可以用字符数组,还可以字符指针,也可以直接使用字符串常量做为参数。
example:
FILE *fp=fopen("test.txt","w");
char s1[20]="hello world";
char *s2="hello C";
fputs(s1,fp); // 数组名
fputs(s2,fp); //字符指针
fputs("hello",fp); //字符串常量
上面三种用法都是可以的,实质上, C语言中字符串的直接值其实都是指针。
如果写入成功,则返回非0,此时编译器默认为返回1.
如果写入错误,则返回EOF。
注意: fputs(char *s, FILE *stream) 函数向文件写入数据成功后,文件位置指针会自动向后移。
fputs(...)向屏幕输出数据。
既然FILE 结构可以指向三种流,当然也可以指向stdout 流
fputs("hello world",stdout);
就是想屏幕输出hello word.
最后来看看fputs(...)函数的标准库实现:
int fputs(char *s, FILE *stream)
int c;
while(c =*s++) //从这儿可以看出,fputs不会向流写入字符串结尾的空字符。
putc(c,stream);
return ferror(stream)? EOF: 非负值
C语言中fgets(...)从流中读入输入,相反fputs(...)向文件写入数据。 对于ANSI C 程序,运行时系统会打开至少三个流,这3个流包括: 1. 标准输入 standard input . 标准定义为stdin. 2 标准输出 standard output. 标准定义为stdout 3. 标准
#include
int printf(const char *restrict format, ...);
int fprintf(FILE *restrict fp, const char *restrict format, ...);
两个
函数
的返回值:若成功则
int fprintf (FILE* stream, const char*format, [argument])
FILE*stream:文件指针
const char* format:输出格式
[argument]:附加参数列表
传送格式化输出到一个文件中与打印机输出
用 法#include <stdio.h>
#include<stdlib.h>
int fprin
C语言
文件操作
函数
的返回值根据不同的
函数
会有所不同,下面列举一些常见的文件操作
函数
和它们的返回值含义:
1. fopen()
函数
:返回一个指向FILE结构体的指针,如果打开文件失败则返回NULL。
2. fclose()
函数
:返回0表示成功关闭文件,返回EOF表示关闭文件失败。
3. fgetc()
函数
:返回读取到的字符,如果已经到达文件结尾则返回EOF。
4. fgets()
函数
:返回读取到的字符串,如果已经到达文件末尾或读取失败则返回NULL。
5. fputc()
函数
:返回写入的字符,如果写入失败则返回EOF。
6. fputs()
函数
:返回写入字符串的结果(成功写入字符的数量),如果写入失败则返回EOF。
7. fread()
函数
:返回读取的元素数量,如果读取失败则返回0。
8. fwrite()
函数
:返回写入的元素数量,如果写入失败则返回0。
9. rewind()
函数
:无返回值,重新定位文件指针至文件开头。
10. fseek()
函数
:返回0表示成功定位文件指针,返回非0值表示定位失败。
11. ftell()
函数
:返回当前文件指针相对于文件开头的偏移量。
12. feof()
函数
:返回非0值表示已经到达文件末尾,返回0表示未到达文件末尾。