求教 fstream 难点

求教 fstream 难点

编写翻译后提示:error C2872: ‘fstream’ : ambiguous symbol

0 普通文件,打开操作
1 只读文件
2 隐含文件
4 系统文件

       cin    cout     cerr    clog                — <iostream>

int main()
{
fstream file;
file.open(“people.txt”,ios::out|ios::binary);
People pe(“aaa”,”bbb”,”ccc”,”sda”);
People pe2;
file.write(reinterpret_cast,sizeof;
file.close();
file.open(“people.txt”,ios::in|ios::binary);
file.read(reinterpret_cast,sizeof;
cout<<pe2.get_Sex()<<” “<<pe2.get_Name();
file.close();
return 0;
}

 

 print?

       class basic_ostream    — <ostream>

其次种:是率先种写的文本读出来,为啥就能出错?
#include
#include
#include

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include “fstream.h”
#include <string.h>
#include <iostream.h>
#include <vector>

当文件读写操作达成之后,大家必须定会将文件关闭以使文件再次成为可访谈的。成员函数close(卡塔尔国,它担当将缓存中的数据排放出来并关闭文件。这几个函数风流浪漫旦被调用,原先的流对象就足以被用来开垦别的的文本了,这么些文件也就足以另行被此外的历程所访谈了。为幸免流对象被沦亡时还关系着张开的文书,析构函数将会自行调用关闭函数close。

澳门新萄京8522,       new version  头文件如:#inlcude <fstream>

int main()
{
fstream file;
People pe2;
file.open(“people.txt”,ios::in|ios::binary);
file.read(reinterpret_cast,sizeof;
cout<<pe2.get_Sex()<<” “<<pe2.get_Name();
file.close();
return 0;
}

为什么?急

[cpp] view
plain copy

  new version 包涵在std命名空间之中。   //【using namespace std;】

class People
{
private:
struct
{
string name;
string weight;
string tall;
string sex;
}people;
public:
People(){}
People(string name, string weight, string tall, string sex)
{
people.name=name;
people.weight=weight;
people.tall=tall;
people.sex=sex;
}
string get_Name()
{
return people.name;
}
string get_Sex()
{
return people.sex;
}
};

 file1.close();
 return 0;
 }

           prot         张开文件的属性                           
//基本超级少用到,在查看资料时,开采存二种办法

 

关于C++文件的读写read和write难点!
先是个:那样写读出结果会对,可是有的时候也会出错。换到汉语的突发性也会出错。
#include
#include
#include

using namespace std;
int main()
{
 fstream file1;
 file1.open(“f:\scheme.txt”,ios::in|ios::out,0); 
 file1<<“I LiveYou!”;

从文件中读入数据也得以用与 cin>>的运用同风姿洒脱的法子:

       class ostream      — <ostream.h>

class People
{
private:
struct
{
string name;
string weight;
string tall;
string sex;
}people;
public:
People(){}
People(string name, string weight, string tall, string sex)
{
people.name=name;
people.weight=weight;
people.tall=tall;
people.sex=sex;
}
string get_Name()
{
return people.name;
}
string get_Sex()
{
return people.sex;
}
};

这几个主意是力所能致实行组合使用的,以“或”运算(“|”)的章程:比如

 

using namespace std;

 print?

  old version  揭破在大局范围以下,不含有在别的命名空间中。

using namespace std;

[cpp] view
plain copy

 

  1. <span style=”font-family:Times New Roman;font-size:16px;”>  
  2. public member function  
  3.   
  4. void open ( const char * filename,  
  5.             ios_base::openmode mode = ios_base::in | ios_base::out );  
  6.   
  7. void open(const wchar_t *_Filename,  
  8.         ios_base::openmode mode= ios_base::in | ios_base::out,  
  9.         int prot = ios_base::_Openprot);  
  10.   
  11. </span>  

       class ios        — <ios.h>

当使用暗中同意方式进行对文件的操作时,你能够采取成员函数is_open(State of Qatar对文件是或不是展开实行认证

(4)新本子被国际化了,帮忙宽字符。

 print?

澳门新萄京8522 1

1.开垦文件

       class streambuf             — <streamb.h>

5.缓存和一块(Buffers and Synchronization卡塔尔国

当大家对文件流进行操作的时候,它们与三个streambuf
类型的缓存(bufferState of Qatar联系在一块儿。这几个缓存(buffer)实际是一块内部存款和储蓄器空间,作为流(stream卡塔尔(قطر‎和情理文件的媒婆。举个例子,对于二个输出流,
每一遍成员函数put
(写四个单个字符State of Qatar被调用,那个字符不是直接被写入该出口流所对应的情理文件中的,而是首先被插入到该流的缓存(buffer)中。

当缓存被缩手观察出来(flushState of Qatar时,它里面的具备数据仍然被写入物理媒介物中(假若是多个输出流的话),或然轻易的被抹掉(如若是一个输入流的话卡塔尔。那几个进度称为同步(synchronization卡塔尔国,它会在偏下任性气风发情状下发生:

  • 当文件被关门时: 在文书被关闭之前,全体还尚无被完全写出或读取的缓存都将被联合。
  • 当缓存buffer 满时:缓存Buffers
    有早晚的空中范围。当缓存满时,它会被自动同步。
  • 调整符鲜明指明:当碰着流中有些特定的主宰符时,同步会产生。那些决定符满含:flush
    和endl。
  • 显著调用函数sync(卡塔尔: 调用成员函数sync(卡塔尔(قطر‎(无参数卡塔尔国能够吸引立即联合。那一个函数再次回到一个int 值,等于-1
    表示流未有关联的缓存或操作失利。

 print?

 

澳门新萄京8522 2

       class basic_stringstream  — <sstream>    // 用来对字符类别举办读写操作

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图