C++ 读取文件内容,分割出字符串

本文介绍了在C++中如何从文件读取内容并分割字符串。主要方法包括使用输出输入流、getline函数配合分隔符、转换为char型后使用strtok函数,以及利用string的find和substr方法。对于包含键值对的文件内容,还提供了相应的处理范例。
摘要由CSDN通过智能技术生成

在c++/c等,经常有需要从文件读取参数值的场景,非常常用,实现的细节主要有,读取文件内容/行,按要求分割成字符串,或者编成键值对供调用。
1.如果是每行都是字符串+空格+字符串形式的话,
最简单的是采用输出输入流的方法,比如伪代码:

ifstream fsf(文件路径);
//只能读取一行,多行的话用循环,以fsf.eof,fsf.good或者确定行数为终止条件
getline(fsf, sline);
stringstream ss;
string a,b,c;
ss<<sline;
ss>>a>>b>>c;
fsf.close();

如果sline = “x y z”;
那么经过上述操作后,a=x; b=y; c=z;
1.1
getline 本身也有分割的用法: 循环使用getline(ss, str, ‘/’) 可以把ss中的字符串按‘/’ 截取&#

通过stringstream实现字符串分割的方法如下: 首先,需要包含sstream头文件。然后,可以使用stringstream类来创建一个字符串流对象。可以使用字符串流对象的输入运算符(>>)来读取字符串,将其存储在一个临时变量。然后,可以将临时变量的值存储在一个容器,如vector,以便进一步处理。 下面是一个示例代码: ```cpp #include <sstream> #include <vector> #include <string> std::vector<std::string> splitString(const std::string& str, char delimiter) { std::vector<std::string> result; std::stringstream ss(str); std::string item; while (std::getline(ss, item, delimiter)) { result.push_back(item); } return result; } ``` 在这个示例,我们定义了一个名为splitString的函数,它接受一个字符串和一个分隔符作为参数。函数首先创建一个字符串流对象ss,并将输入字符串str传递给它。然后,我们使用std::getline函数来从字符串按照指定的分隔符读取每个部分,并将它们存储在一个临时变量item。然后,我们将临时变量item添加到结果容器result。最后,函数返回结果容器result。 这样,我们就可以调用splitString函数来实现文件分割字符串的功能,只需要传入文件读取字符串和分隔符即可。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C++字符串分割方法总结](https://blog.csdn.net/wzxiaodu/article/details/120131403)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值