1.fprintf和fscanf
与printf和scanf类似,只是多了第一个参数,第一个参数是一个文件指针。
在fprintf中,这个文件指针指示显示的文本输入到.....(指明输出的目的地)
在fscanf中,这个文件指针指示输入的文本是从...输入的(指明输入的输入源)
无法直接将文件里面的内容读到显示器中或直接将键盘输入的内容输入到文件中,我们需要在程序里面开辟一块区域,用来作为输入输出的桥梁。
- #include<stdio.h>
- #include<stdlib.h>
- #define SIZE 100
-
- int main(void){
- FILE *fp;
- char wordsBuffer[SIZE];
-
- puts("Enter the words:\n");
- if((fp = fopen("words.txt","a+")) == NULL){
- puts("Can't open word.txt");
- }
- while(gets(wordsBuffer) && wordsBuffer[0] != '\0'){
- fprintf(fp,"%s ",wordsBuffer);
- }
- rewind(fp);
- while(fscanf(fp,"%s ",wordsBuffer)==1){
- puts(wordsBuffer);
- }
- if(fclose(fp) != 0){
- puts("can't close\n");
- exit(-1);
- }
- puts("Done");
- getchar();
- return 0;
- }
2.fgets和fputs
fgets表示读取输入,第一个参数表示读取的内容存在哪里类型是一个char *指针,所以不能使用FILE *!!第二个参数表示读取的字符数,第三个参数表示从哪里读取类型是一个FILE*!!只能读到一个程序缓冲字符数组中,无法直接完成从文件读到键盘或从键盘度读到文件。
fgets会向末尾添加空字符构成字符串,如果换行,还会添加换行符。
fputs表示输入,第一个参数是输入的内容地址,第二个参数是输出到哪里,不会自动添加换行符。
使用这两个函数可以保证安全性
Linux C 文件输入输出函数 fopen()、getc()/fgetc()、putc()/fputc()、fclose()、fprintf()、fscanf()、fgets()、fputs()、fseek()、ftell()、fgetpos()、fsetpos() 详解
定义函数 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。 mode有下列几种形态字符串: r 打开只读文件,该文件必须存在。 r+ 打开可读写的文件,该文件必须存在。 w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该