C++从文本文件中逐行读取文本的方式比较常见,在有些情况下需要从字符串中逐行读取数据,比如说有一个csv文件数据存储在一个std::string
中,我们需要逐行解析这个csv文件的内容,这个时候就需要使用到stringstream
。
1 从文件中逐行读取文本
#include <iostream>
#include <fstream>
#include <string>
int main()
{
std::ifstream infile;
infile.open("example.txt", std::ios::in);
if (!infile.is_open())
return 0;
std::string line;
while (getline(infile,line))
{
std::cout << line << std::endl;
}
infile.close();
return 0;
}
2 从字符串流std::stringstream中逐行读取文本
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
int main()
{
// 先一次性将文本内容读取到std::string
std::ifstream infile;
infile.open("example.txt", std::ios::in);
std::istreambuf_iterator<char> beg(infile), end;
std::string strdata(beg, end);
infile.close();
// 从std::stringstream中逐行读取
std::stringstream ss(strdata);
std::string line;
while (getline(ss, line))
{
std::cout << line << std::endl;
}
return 0;
}
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – 从文件和字符串流中逐行读取数据
原文链接:https://www.stubbornhuang.com/2965/
发布于:2024年01月22日 10:29:43
修改于:2024年01月22日 10:29:43
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
50