3

在 C++ 中,如何遍历字符串中的每一行?有很多关于逐行读取文件的问题,但我怎么能用std::string?

例如,如果我有以下字符串:

1051
2232
5152
3821
0021
3258

我将如何遍历每个数字?

4

2 回答 2

2

在 C++ 中,您可以将字符串完全用作文件,使用sstream头文件中定义的类:

#include <sstream>
//...
std::string str=...; // your string
std::istrstream in(str); // an istream, just like ifstream and cin
std::string line;
while(std::getline(in,line)){
  //do stuff with line
}

这有点简单,但你明白了。

您可以in像使用cin,例如in>>x等一样使用。因此,如何在 C++ 中逐行迭代 cin 中的解决方案?在这里也很重要-您可能想查看它们以获得“真实”答案(只需替换cin为您自己的istream

编辑:作为旁注,您可以使用ostream机制(如cout)以与打印到屏幕相同的方式创建字符串:

std::ostringstream out;
out << header << "_" << 3.5<<".txt";
std::string filename=out.str();
于 2013-07-23T20:06:52.343 回答
0

使用分词器,让 '\n' 或 '\r\n' 或适合您操作系统的换行符作为分词器。

或者,如果您使用的是缓冲文件流阅读器,只需从这个新字符串创建一个字符串流,然后从字符串流而不是文件流中读取。

简而言之,除了您没有从文件中读取之外,没有任何变化。

一个非常幼稚的解决方案是从中创建一个字符串流,并在其中的 while 循环中分配整数或字符串。

于 2013-07-23T17:54:11.013 回答