程序运行时,操作系统会为它创建三条数据流:标准输入、标准输出、标准错误。有时,我们也需要创建自己的数据流。
fopen()
我们可以用fopen()函数创建新数据流,每条数据流用一个指向文件的指针来表示:
FILE *my_file = fopen("log.txt","w");
fopen的第二个参数是模式:
r:读
w:写
a:追加
fprintf()
可以用fprintf()往数据流中打印数据。
fprintf(my_file,"hello world!");
fscanf()
可以用fscanf()读取数据流的数据。
char c[80];
fscanf(my_file,"%79[^\n]\n",c);
fclose()
当用完数据流后,一定要关闭它。虽然所有的数据流在程序结束后都会自动关闭,但你仍应自己关闭它们。
fclose(my_file);
最后,我们来看一个完整的实例:
#include <stdio.h>
int main(){
FILE *my_file = fopen("log.txt","r");
fprintf(my_file,"hello world!");
char c[80];
fscanf(my_file,"%79[^\n]\n",c);
printf("@@@:%s\n",c);
fclose(my_file);
return 0;
}
编译运行:
~/Desktop/MyC$ gcc test5.c -o test5
~/Desktop/MyC$ ./test5
@@@:Hello world,I love you!
小知识:
为什么FILE要大写?其实,最早FILE是用宏定义的,而宏的名字通常都要大写。