本文主要是介绍C++:利用fstream流读写文件和string流,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.fstream的使用
ofstream 是从输出文件流,ifstream 是从输入文件流 ofstream 是从内存到硬盘,ifstream 是从硬盘到内存
不多啰嗦,明白了这两点之后,直接简单的代码带入理解。
ifstream类的使用:将指定路径文件输入到指定字符串中。
//将指定路径文件输入到指定字符串中。bool Read(const std::string& file_path,std::string* html){std::ifstream file(file_path.c_str());if(!file.is_open()){return false;}std::string line;while(std::getline(file,line)){*html+=line+"\n";}file.close();return true;}
ofstream类的使用:将字符串内容输出到指定文件
//将字符串内容输出到指定文件bool Write(const std::string& file_path,std::string& content){std::ofstream file(file_path.c_str());if(!file.is_open()){return false;} file.write(content.c_str(),content.size());file.close();return true;
2.string流
sstream头文件定义了三个类型来支持内存IO。这些类型可以向string写入数据,从string读取数据,就像string是个IO流一样。
使用istringstream从string读取数据
#include<iostream>
#include<sstream> //istringstream 必须包含这个头文件
#include<string>
using namespace std;
int main()
{ string str="i am a boy"; istringstream is(str); string s; while(is>>s) { cout<<s<<endl; } }
输出是:
iamaboy
使用ostringstream向string写入数据
在使用整型转string的时候感觉有点棘手,因为itoa不是标准C里面的,而且即便是有itoa,其他类型转string不是很方便。后来去网上找了一下,发现有一个好方法:
代码如下:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;int main()
{int a = 55;double b = 65.123;string str = "";//头文件是sstreamostringstream oss;oss << a << "---" << b;str = oss.str();cout << str << endl;return 0;
}
输出就是55—65.123,怎么样,转换起来非常的自由。就和输出到屏幕一样。
这篇关于C++:利用fstream流读写文件和string流的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!