c/c++文件流知识总结

这篇博客详细介绍了C语言中常用的文件输入输出函数,包括fopen、fclose、fputc、fputs、fgetc、fgets、feof、fread、fwrite、rewind、ftell、fseek和fprintf/fscanf等。内容涵盖了文件的打开、关闭、读取、写入、文件指针操作以及错误检查等核心功能。通过实例展示了如何进行文件操作,对于理解和应用C语言文件I/O非常有帮助。
摘要由CSDN通过智能技术生成

说明:总结常用的 c 语言文件 IO函数

1. FIELE *fopen(const char*filename,const char *mode)

  以mode的方式,打开一个以filename(指针类型)命名的文件,返回一个指向该文件缓冲区的指针,该指针是后续操作的句柄。

     

 注意:按二进制读取时需要加 'b',如 'rb', 'wb'...

2. int fclose(FILE *stream)

    fclose()用来关闭先前用fopen()打开的文件。并让文件缓冲区的数据写入文件中,并释放系统提供的文件资源。成功范返回0;失败返回-1(EOF)。

3. int fputc(int ch,FILE *stream)  

  将ch字符写入文件,成功返回写入字符,失败返回-1。

    int fputs(char *str,FILE *fp)    

  将str指向的字符串写入fp指向的文件中,正常返回0;失败返回1.

4. int fgetc(FILE *stream)  

  从文件流中读取一个字符并返回。成功返回读取的字符;读到文件末尾或失败返回-1。

    char *fgets(char *str,int length,FILE *fp)

  从fp指向的文件中,至多读length-1个字符,送入数组str中,如果在读入length-1个字符结束前遇到\n或EOF,读入即结束,字符串读入后在最后加一个'\0'字符。正常返回 str 指针,出错或遇到文件结尾,返回NULL指针。

5. int feof(FILE *stream)

  判断文件是否读到末尾,未读到末尾返回0,读到末尾返回非0。一般不用,文件读到结尾,再去读一次,容易导致多读一次。不建议使用!

6. int fread(void* buffer,int num,int count,FILE *fp)

    int fwrite(void*buffer,int num,int count,FILE *fp) 

  将buffer指向的数据写入fp指向的文件中,或是把fp指向的文件中的数据读到buffer中,num为每个要读写的字段数的字节 数,count为要读写的字段数。成功返回读/写的字段数 (count); 出错或文件结束返回0。

    不同于其它函数,当我们试图用fread/fwrite去读写文本文件的时候,发现文本中的格式己经没有任何意义,只是一个普通的字符。它所进行的操作为二进制操作,通俗来说就是对一些文本标识符如'\0','\n'等已经不敏感了,这些文本标识符都被当做成一个二进制来读写。

7. void rewind(FILE *STREAM) 

    将文件指针重新指向一个流的开头。

8. int ftell(FILE *stream)

  得到流文件的当前读写位置,其返回值是当前读写位置偏离文件头部的字节数。失败返回-1。

9. int fseek(FILE *stream,long offset,int where)

  偏移文件指针,成功返回0,失败返回-1。where是偏移的起始位置。

    //#define SEEK_CUR 1 当前位置

    //#define SEEK_END 2 文件结尾

    //#define SEEK_SET 0 文件开头

    fseek(fp,100L,0);把fp指针移动到离文件开头100字节处;

    fseek(fp,100L,1);把fp指针移动到离文件当前位置100字节处;

    fseek(fp,-100,2);把 fp 指针退回到离文件结尾 100 字节处。

10. int fprintf(FILE *stream, const char *format [, argument, ...])     向指定的文件写入字符。

   int fscanf(FILE *stream, const char *format [, argument, ...])     从指定的文件读出字符

13行保存文件例子

#include<iostream>

#include<fstream>

#include<string>

int  main()

{

using namespace std;

ofstream outFile;

outFile.open("a.txt");//保存的文件名

string nr;//保存录入内容的变量

cout<<"输入您想要保存的内容_______________\b\b\b\b\b\b\b\b\b\b\b\b\b\b";

cin>>nr;

outFile<<nr;

outFile.close();//关闭文件写入流

cout<<"\n\n您的内容保存到 a.txt 请查看,\n保存位置与您的程序在同个目录"<<endl;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值