我正在编写程序以制作问题表格。问题被保存到文件中,我想阅读它们并将其存储在内存中(为此我使用了一个 vector )。
我的问题的形式如下:

1 TEXT What is your name?
2 CHOICE Are you ready for these questions?
Yes
No

我的问题是,当我从文件中读取这些问题时,我使用getline读取一行,然后将其转换为stringstream,读取问题的编号和类型,然后再次在stringstream上使用getline ,阅读其余的问题。
但这是什么,它还会读取问题前面的空白,当我再次将问题保存到文件中并再次运行程序时,问题前面有2个空白,之后有3个空白和很快...

这是我的一段代码:
getline(file, line);
std::stringstream ss(line);
int nmbr;
std::string type;
ss >> nmbr >> type;
if (type == "TEXT") {
    std::string question;
    getline(ss, question);
    Question q(type, question);
    memory.add(q);

关于如何解决这个问题的任何想法? getline可以忽略空格吗?

最佳答案

查看this并使用:

ss >> std::ws;
getline(ss, question);

关于c++ - 用getline跳过空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20045726/

10-14 08:20