C和C++中文件读写的区别

C中采用的主要是文件指针的办法

C++中对文件的操作主要运用了“文件流”(即非标准的输入输出)的思想

#include<stdio.h>
//...
FILE* fp=fopen("1.txt","w");
if(fp!=NULL){ //查看文件是否创建成功(若文件未打开成功则会返回NULL)
    fprintf(fp,"hello world");
    fclose(fp); //该语句若忘记,则可能在程序运行前并看不到文件内容,因为缓冲区内容未刷新到目的地,也可能造成数据丢失
}

fprintf() 比 printf() 多第一个参数,格式化后将输出到一个stream,通常是到文件,其原型如下:

int fprintf( FILE *stream, const char *format, ... );
fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件.如: fprintf( out, "Hello %s\n", name );

fopen() 原型:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能:为使用而打开一个流,把一个文件和此流相连接,给此流返回一个FILE指针。mode表示打开状态的字符串,"r" 以只读方式打开文件,"w" 以只写方式打开文件;"a" 以追加方式打开文件;"r+" 以读写方式打开文件,如无文件出错;"w+" 以读写方式打开文件,如无文件生成新文件

fclose()的功能就是关闭用fopen()打开的文件,原型:int fclose(FILE *fp); //成功返回0,失败返回EOF。

在程序结束时一定要记得关闭打开的文件,不然可能会造成数据丢失的情况



C++文件流:

fstream  // 文件流
ifstream   // 输入文件流
ofstream  // 输出文件流

在fstream类中,成员函数open()实现打开文件的操作,从而将数据流与文件进行关联,通过ofstream,ifstream,fstream的对象来进行对文件的读写操作

#include<fstream>
using namespace std;
//...
fstream fout("1.txt",ios::out);
if(fout.is_open()){ //作用同上,只是is_open的返回值是布尔型
    fout<<"hello world"<<name<<endl;
    //...
    fout.close();
}

打开文件的方式在ios类(所以流式I/O的基类)中定义,有如下几种方式

ios::in 为输入(读)而打开文件
ios::out 为输出(写)而打开文件
ios::ate 初始位置:文件尾
ios::app 所有输出附加在文件末尾
ios::trunc 如果文件已存在则先删除该文件
ios::binary 二进制方式

这些方式是能够进行组合使用的,以“或”运算(“|”)的方式, 如fout.open("Hello.txt", ios::in|ios::out|ios::binary);

时间: 2024-11-02 16:43:10

C和C++中文件读写的区别的相关文章

快速入门Python中文件读写IO是如何来操作外部数据的?

读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件). 读文件 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符 >>> f =

Python中文件读写

 2019-06-01Python中的文件读写操作文件过程如下1.打开文件 格式:open(path,flag[,encoding][,errors]) path:表示要打开文件的路径,flag:表示打开方式 r 以只读的方式打开文件,文件的描述符放在文件的开头 rb 以二进制格式打开文件用于只读,文件的描述符放在文件的开头 r++ 打开一个文件用于读写,文件的描述符放在文件的开头 w 打开一个文件只用于写入,如果该文件已经存在会覆盖,如果不存在则创建一个新文件 wb 打开一个文件只用于写入二进

Python中文件读写之 w+ 与 r+ 到底有啥区别?

其实r 是只读,只能读不能写,这是很明确的,但是r+是可读写,变成r+后还没太明白到底加了什么,还是照样写不了,有没有这样的体验呢,如下代码,只读时 f = open("test.txt", 'r', encoding="utf-8") # 文件句柄 f.write("we are heros\n") data = f.read() print(data, type(data)) f.close() 这样的话报错是明显的:io.Unsupport

python中文件读写的快速入门实例

说明: 相比其他语言python真的简洁很多,自己往前在学习C语言的过程中,起码要到很后面很后面才提起文件操作,但python的快速入门却以一种非常简洁的方法让你对文件操作有个体验,当然这是在linux环境下,不过不得不说,linux环境下进行编程的学习,确实是要比windows下面可以学到更多知识,下面的两个例子都是来自<Python核心编程>这本书中,真的非常经典! 一.创建并写入文件的实例 直接给代码: #!/usr/bin/env python 'makeTextFile.py -- 

(原)Eclipse的java中文件读写

1 在<uses-sdk…/>下面添加permission <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="16" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:na

python中文件读写的相关操作及应用

1:既读又写 1 with open('数据',mode='r+',encoding='utf-8') as f: 2 print(f.read()) #输出结果:python与人工智能密切相关 3 f.write('java也不错') 4 print(f.read()) #输出结果:无输出 ,如果我们想打印 5 # 写入的内容,但是因为光标已经 6 # 移到了字符串的结尾了,所以这里我们 7 #可以使用tell()与seek()来确定位置 改进过后: 1 with open('数据', mod

【旧事重提】iOS中文件读写

---恢复内容开始--- 1. 读取文件  (本地 UTF-8编码的文本文件) NSString *filePath = [[NSBundle mainBundle] pathForResource:@"song" ofType:@"json"]; NSString *str =[NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; //NSData

java中文件的读写

Java中文件读写操作的作用是什么?回答这个问题时应该先想到的是Java只是一门语言,我们的一种使用工具而已,这样答案就明晰了,就是将外来的各种数据写入到某一个文件中去,用以保存下来:或者从文件中将其数据读取出来,供我们使用.就如下电影过程,从网络资源中下载一部电影保存于你电脑中(写文件),当你想看的时候就用播放器打开(读文件).Java中如何对文件进行读写操作?先理一理,Java中的流分两种,字节流和字符流,其中字节流的两个基类是InputStream和OutputStream;字符流的两个基

Lua学习笔记8:文件读写

lua中文件读写经常在游戏配置中用到,比如客户端的音效音乐开关等. Lua官方API文档:点这里 I/O库为文件操作提供4个主要函数:io.open(),io.read(),io.write和io.close(). io.open(文件路径,打开方式):以指定方式打开一个文件,打开成功返回一个文件句柄,失败返回nil和错误描述. 可以传入以下六种打开方式: "r":读模式(默认): "w":写模式: "a":附加模式: "r+"