fstream函数的作用,c中open函数和fstream有什么区别可以互换么在什么情况下不能互

1,c中open函数和fstream有什么区别可以互换么在什么情况下不能互open是函数,fstream是stream的子类fstream(file stream)是用来对文件操作的,编程时要加入头文件<fstream.h> 。在fstream类中,有个成员函数open(),用来打开文件的 。加了头文件就可以直接用open()函数了 。其原型是:void open(const char* filename,int mode,int access);参数:filename:要打开的文件名 mode:要打开文件的方式 access:打开文件的属性你试试 。
2,fstreamh是啥意思又什么作用啊这个是输入输出流的头文件 。我举个例子吧char s[20];//打开文件:fstream tfile(“data.txt”,ios::in|ios::out);//读文件:tfile>>s;tfile.get(s[0]);tfile.getline(s,20);//写文件:tfile<<s;tfile.put(s[0]);//关闭文件:tfile.close();它是c++里面文件输入输出流 , 有这个#include头文件就可以用很多有关文件输入输出的函数如:fopen,fclose,fputs,fgets , fread等等?。。≌飧鍪鞘淙胧涑隽鞯耐肺募?【fstream函数的作用,c中open函数和fstream有什么区别可以互换么在什么情况下不能互】
3,sstream和fstream是什么意思呀C++程序把输入和输出看作字符流,输入时,程序从输入流中提取字节,输出时,程序把字节插入到输出流中 。对于输入输出流既可以来自标准输入输出设备,也可以来自文件,甚至可以来自String对象,三者分别属于iostream family、fstream family、sstream family 。对于iostream类,就是我们通常所说的标准流 , 它把程序跟标准I/O连接在一起,输入来自键盘,输出送往监视器 。对于fstream类,它把程序跟文件关联起来,输入来自文件,输出到文件 。对于sstream类,它是提供程序和string对象之间的I/O,可通过ostringstream sout和istringstream sin来声明两个对象 , 分别对应输出流和输入流,这给编程带来极大的方便,例如可以从文本文件中读取一批数字字符到string对象中,再把string对象作为程序的输入流 , 既可把从文件中读取来的数字字符单个进行读?。佣写?。例如: string line; int word; ifstream fin("test.txt"); while(getline(fin,line)) // {istringstream sin(line); //输入流重定向到string对象while(sin>>word) //在string对象中读取数字 { ...... //处理} } 当然了,输出也是一样的道理 。
4,fstream怎么用#include &lt;iostream&gt;#include &lt;fstream&gt;using namespace std;void main() float x,y,z; int k; ifstream indata; ofstream outdata;indata.open("in.dat"); if(!indata)cout&lt;&lt;"can not open the file:in.dat"&lt;&lt;endl; return; } indata&gt;&gt;x&gt;&gt;y&gt;&gt;z; indata&gt;&gt;k; outdata.open("out.dat"); if(!outdata)cout&lt;&lt;"can not open the file :out.dat"&lt;&lt;endl; return; } outdata&lt;&lt;x&lt;&lt;" "&lt;&lt;y&lt;&lt;endl; outdata&lt;&lt;z&lt;&lt;" "&lt;&lt;k&lt;&lt;endl; indata.close(); outdata.close();}5,c里的头文件sstream 与fstream有什么区别其实两个都是C++文件流的分支,在C++有一个stream这个类 , 所有的I/O都以这个“流”类为基础的,也就是他的子类 。首先来说fstream吧!在fstream类中,有一个成员函数open() , 就是用来打开文件的,其原型是:void open(const char* filename,int mode,int access);参数:filename: 要打开的文件名mode: 要打开文件的方式access: 打开文件的属性打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下:ios::app: 以追加的方式打开文件ios::ate: 文件打开后定位到文件尾,ios:app就包含有此属性ios::binary: 以二进制方式打开文件,缺省的方式是文本方式 。两种方式的区别见前文ios::in: 文件以输入方式打开ios::out: 文件以输出方式打开ios::nocreate: 不建立文件,所以文件不存在时打开失败ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败ios::trunc: 如果文件存在,把文件长度设为0可以用“或”把以上属性连接起来 , 如ios::out|ios::binary打开文件的属性取值是:0:普通文件 , 打开访问1:只读文件2:隐含文件4:系统文件可以用“或”或者“+”把以上属性连接起来 ,如3或1|2就是以只读和隐含属性打开文件 。例如:以二进制输入方式打开文件c:config.sysfstream file1;file1.open("c:config.sys",ios::binary|ios::in,0);如果open函数只有文件名一个参数,则是以读/写普通文件打开,即:file1.open("c:config.sys");<=>file1.open("c:config.sys",ios::in|ios::out,0);另外 , fstream还有和open()一样的构造函数,对于上例,在定义的时候就可以打开文件了:fstream file1("c:config.sys");特别提出的是,fstream有两个子类:ifstream(input file stream)和ofstream(outpu file stream),ifstream默认以输入方式打开文件 , 而ofstream默认以输出方式打开文件 。ifstream file2("c:pdos.def");//以输入方式打开文件ofstream file3("c:x.123");//以输出方式打开文件所以,在实际应用中,根据需要的不同,选择不同的类来定义:如果想以输入方式打开,就用ifstream来定义;如果想以输出方式打开,就用ofstream来定义;如果想以输入/输出方式来打开,就用fstream来定义 。二、关闭文件打开的文件使用完成后一定要关闭,fstream提供了成员函数close()来完成此操作 , 如:file1.close();就把file1相连的文件关闭 。三、读写文件读写文件分为文本文件和二进制文件的读取,对于文本文件的读取比较简单,用插入器和析取器就可以了;而对于二进制的读取就要复杂些,下要就详细的介绍这两种方式1、文本文件的读写文本文件的读写很简单:用插入器(<<)向文件输出;用析取器(>>)从文件输入 。假设file1是以输入方式打开 , file2以输出打开 。示例如下:file2<<"I Love You";//向文件写入字符串"I Love You"int i;file1>>i;//从文件输入一个整数值 。这种方式还有一种简单的格式化能力,比如可以指定输出为16进制等等,具体的格式有以下一些操纵符 功能 输入/输出dec 格式化为十进制数值数据 输入和输出endl 输出一个换行符并刷新此流 输出ends 输出一个空字符 输出hex 格式化为十六进制数值数据 输入和输出oct 格式化为八进制数值数据 输入和输出setpxecision(int p) 设置浮点数的精度位数 输出比如要把123当作十六进制输出:file1<<hex<<123;要把3.1415926以5位精度输出:file1<<setpxecision(5)<<3.1415926 。然后再来说说sstream类:其实他与fstream类的用法十分相似 , 只不过把输入输出的目标由文件改为了字符串;istringstream: Creates a type basic_istringstream specialized on a char template parameter.ostringstream: Creates a type basic_ostringstream specialized on a char template parameter.stringbuf: Creates a type basic_stringbuf specialized on a char template parameter.stringstream: Creates a type basic_stringstream specialized on a char template parameter.wistringstream: Creates a type basic_istringstream specialized on a wchar_t template parameter.wostringstream: Creates a type basic_ostringstream specialized on a wchar_t template parameter.wstringbuf: Creates a type basic_stringbuf specialized on a wchar_t template parameter.wstringstream: Creates a type basic_stringstream specialized on a wchar_t template parameter.以下是一个小例子 , 看看是不是理解:将num中的数字输入到bob这个我们定义的字符串读写流中,然后再将bob输出到字符串str中:int num;stringstream bob;bob << num;string suzzy(bob.str());

    推荐阅读