C 文件读写

Posted 水郁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 文件读写相关的知识,希望对你有一定的参考价值。

打开文件

fopen( ) 函数来创建或者打开文件,这个调用会初始化一个FILE 类型的对象。

原型

FILE *fopen( const char * filename, const char * mode );

 filename 是字符串,用来命名文件,访问模式 mode 的值可以是下列值中的一个:

模式描述
r 打开一个已有的文本文件,允许读取文件。
w 打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会从文件的开头写入内容。
a 打开一个文本文件,以追加模式写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会在已有的文件内容中追加内容。
r+ 打开一个文本文件,允许读写文件。
w+ 打开一个文本文件,允许读写文件。如果文件已存在,则文件会被截断为零长度,如果文件不存在,则会创建一个新文件。
a+ 打开一个文本文件,允许读写文件。如果文件不存在,则会创建一个新文件。读取会从文件的开头开始,写入则只能是追加模式。

 

如果处理的是二进制文件,则需使用下面的访问模式来取代上面的访问模式:

"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

关闭文件

fclose( ) 函数用来关闭文件。

原型:

int fclose( FILE *fp );

如果成功关闭文件,fclose( ) 函数返回零,如果关闭文件时发生错误,函数返回 EOF。

写入文件

函数 fputc() 把字符c写入到 fp 所指向的输出流中。写入成功,它会返回写入的字符的ASCII码值,发生错误返回 EOF。

int fputc( int c, FILE* stream );

函数 fputs() 把字符串 s 写入到 fp 所指向的输出流中,不包括\0。写入成功,文件的位置指针会自动后移,返回一个非负值,发生错误返回 EOF。

 int fputs( const char *s, FILE *stream ); 

函数 fprintf() 根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件. fprintf()只能和printf()一样工作. fprintf()的返回值是输出的字符数,发生错误返回一个负值。

int fprintf (FILE* stream, const char*format, [argument]);

 实例:

#include <stdio.h>

main()
{
   FILE *fp;

   fp = fopen("my.txt", "w+");
   fprintf(fp, "晚上好!\n");
   fputs("我饿了!\n", fp);
   fclose(fp);
}

读取文件

fgetc() 函数从 文件中读取一个字符。返回值是读取的字符的ASCII码值,发生错误则返回 EOF。

int fgetc( FILE * fp );

fgets() 从 fp 所指向的输入流中读取 n - 1 个字符。它会把读取的字符串复制到缓冲区 buf,并在最后追加一个null 字符来终止字符串。如果在读取最后一个字符之前就遇到一个换行符 ‘\n‘ 或文件的末尾 EOF,则只会返回读取到的字符,包括换行符。

char *fgets( char *buf, int n, FILE *fp );

 

fscanf() 函数来从文件中读取字符串,和scanf用法相同。

int fscanf(FILE*stream,constchar*format,[argument...]);

实例:

#include <stdio.h>

main()
{
   FILE *fp;
   char buff[255];

   fp = fopen("my.txt", "r");
   fscanf(fp, "%s", buff);
   printf("1 : %s\n", buff );

   fgets(buff, 255, (FILE*)fp);
   printf("2: %s\n", buff );

   fgets(buff, 255, (FILE*)fp);
   printf("3: %s\n", buff );
   fclose(fp);

}

  

以上是关于C 文件读写的主要内容,如果未能解决你的问题,请参考以下文章

用C读写二进制文件?

C 语言文件操作 ( 配置文件读写 | 完整代码示例 ) ★

QT读写文件的问题

c语言文件读写的问题

c语言 txt文件读写的代码!!!!

MFC怎么读写EXCEL文件