首页 > 技术文章 > C语言文件读写

pfeiliu 2020-04-05 00:36 原文

写入文件

函数 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)

 

推荐阅读