文件的输入与输出

Posted bingzzzzzz

tags:

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

IO库类型和头文件

1.iostream istream,ostream,iostream

2.fstream  ifstram,ofstream,fstream

3.sstream istringstream,ostringstream,stringstream

IO对象无拷贝和复制

fstream fstrm;//创建一个未绑定的文件流

fstream fstrm(s);//创建一个fstream,并打开文件名为s的文件

fstream fstrm(s,mode);//以指定模式打开文件

fstrm.open(s);//打开名为s的文件绑定到fstrm上

fstrm.close();//关闭文件

fstrm.is_open();//返回一个booL值,指出文件是否打开

文件操作:

 1 vector<string >  lines;
 2 ifstream in("new2.txt");
 3 string word;
 4 while (in>>word) {
 5     lines.push_back(word);
 6 }
 7 for (auto w : lines) {
 8     cout << w <<endl;
 9 }
10 in.close();

//文件模式 

in,以读方式打开 ,只能对ifstream或fstream对象设定in

out,以写方式打开,只能对ofstream或fstream对象设定out,以out模式打开会丢失文件数据

app,每次操作前定位到文件末尾

ate,打开文件后定位到文件末尾

trunc,截断文件,必须设定out后设定

binary;//以二进制方式进行IO

ofstream out("new2.txt", ofstream::out | ofstream::trunc);

为保留文件需要同时显式的指定app模式

 

ofstream f("directory.txt", fstream::out);//没有则创建
    char s[]= "zheng \nwang \nli \nzhou \n ";//斜杠可换行
    f.write(s,sizeof(s)-1);//写数据,第二个参数是字符串的大小
    f.close();
    ifstream in1("directory.txt");
    try {
    
        if (in1) cout << "open file success!" << endl;
        else {
            throw runtime_error("Invalid Filename!");
        }
    }
    catch (runtime_error err) {
    
        cout << err.what() << "\nTry again ? Enter y or n" << endl;
        char c;
        cin >> c;
        if (!cin || c == n) {
        
            exit(0);
        }
    }
    string line,word1;
    vector<PersonInfo > people;
    while (getline(in1, line)) {
        PersonInfo info;
        istringstream record(line);
        record >>info.name;
        while (record >> word) {
        
            info.phones.push_back(word);

        }
        people.push_back(info);

    }

    //throw表达式表所遇到的无法处理的问题
    //try以关键子开始,以一个或多个catch语句结束,处理异常*/

 

 

IO库类型和头文件//iostream istream,ostream,iostream//fstream  ifstram,ofstream,fstream//sstream istringstream,ostringstream,stringstream//IO对象无拷贝和复制IO库类型和头文件//iostream istream,ostream,iostream//fstream  ifstram,ofstream,fstream//sstream istringstream,ostringstream,stringstream//IO对象无拷贝和复制

以上是关于文件的输入与输出的主要内容,如果未能解决你的问题,请参考以下文章

python颜色压缩的结果颜色比保存颜色深

代码适用于与单个 html 文件不同的堆栈片段

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途

vs code 自定义代码片段

Amazon Elastic Map Reduce:输入片段大小是不是重要

VSCode 如何操作用户自定义代码片段(快捷键)