c++ - 使用getline分割输入,使用逗号作为delim

标签 c++ getline

我有一个包含电影信息的文本文件,以逗号分隔。我将提供一行以供洞察:

8,The Good the Bad and the Ugly,1966,2

我需要采用这一行,并用逗号分隔不同的部分以适合此函数的格式:

void addMovieNode(int ranking, std::string title, int releaseYear, int quantity);

文本文件的信息与函数一致,但我不清楚 getline 操作是如何操作的。

我知道我可以像这样传入文本文件

getline("moveInfo.txt", string, ",");

但是这将如何转化为输出的实际情况?

我阅读了 cplusplus 网站上的手册,但这并没有帮助我澄清很多。

最佳答案

您可以使用 stringstringstream:

#include <sstream>
#include <string>
#include <fstream>

ifstream infile( "moveInfo.txt" );    
while (infile)
{
    std::string line;
    if (!std::getline( infile, line,',' )) break;
    std::istringstream iss(line);
    int ranking, releaseYear, quantity;
    std::string title;
    if (!(iss >> ranking >> title >> releaseYear >> quantity)) { break; } 
}

关于c++ - 使用getline分割输入,使用逗号作为delim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39986851/

相关文章:

c++ - find_if 在一个集合上是线性的吗?

c++ - 从 'int' 到 'char *' 的无效转换

C++,cin如何从输入缓冲区读取?

C++函数将字符串拆分为单词

c++ - 项目组织的最佳方式是什么?

c++ - 在嵌入式编程中避免使用全局变量

c++ - 为什么 seekg 不能与 getline 一起使用?

c++ - Qt-使用getline函数

c++ - 为什么 getline(...) 打印在屏幕上?

c++ - 如何使用空终止字符memset char数组?