C语言文件读写
写入文件
函数 fputs() 把字符串 s 写入到 fp 所指向的输出流中。如果写入成功,它会返回一个非负值,如果发生错误,则会返回 EOF。
也可以使用 fprintf(FILE *fp,const char *format, ...) 函数来写把一个字符串写入到文件中。
#include <stdio.h> int main() { FILE *fp = NULL; fp = fopen("test.txt", "a+"); fprintf(fp, "This is testing for fprintf...\n"); fputs("This is testing for fputs...\n", fp); fprintf(stdout,"This is fprintf");//输出到屏幕 fputs("This is fprintf",stdout);//输出到屏幕 fclose(fp); }
This is fprintfThis is fprintf
读取文件
函数 fgets() 从 fp 所指向的输入流中读取 n - 1 个字符。它会把读取的字符串复制到缓冲区 buf,并在最后追加一个 null 字符来终止字符串。
如果这个函数在读取最后一个字符之前就遇到一个换行符 '\n' 或文件的末尾 EOF,则只会返回读取到的字符,包括换行符。也可以使用 fscanf(FILE *fp, const char *format, ...) 函数来从文件中读取字符串,但是在遇到第一个空格和换行符时,它会停止读取。
#include <stdio.h> #include <stdlib.h> int main(){ FILE *fp=NULL; char buff[255]; fp=fopen("test.txt","r"); if(fp == NULL){ printf("error"); exit(1); }else { fgets(buff,255,fp); printf(buff); fgets(buff,255,fp); printf(buff); fgets(buff,255,fp); printf(buff); fgets(buff,255,fp); printf(buff); fscanf(fp,"%s",buff); printf("%s\n",buff); fscanf(fp,"%s",buff); printf(buff); } fclose(fp); }
1This is testing for fprintf... 2This is testing for fputs... 3This is testing for fprintf... 4This is testing for fputs... 5This is
读写一个字符的函数
fgetc(fp)
从fp指向的文件读取一个字符
读取成功,返回所读字符,失败返回EOF(-1)
fputc(ch,fp)
把字符ch写到文件指针变量fp所指向的文件中
读取成功,返回输出的字符,失败返回EOF(-1)
读写一个字符串的函数
fgets(str,n,fp)
从fp指向的文件读取一个长度为(n-1)的字符串,存放到字符数组str中。
读取成功,返回地址str,失败返回NULL
fputs(str,fp)
把str指向的字符串写到文件指针变量fp所指向的文件中。
输出成功,返回0,失败返回非0
以格式化的方式读写文件
fprint(文件指针,格式化字符串,输出列表)
fscanf(文件指针,格式化字符串,输入列表)
二进制方式读写文件
fread(buffer,size,count,fp)
fwrite(buffer,size,count,fp)