将 getline 从 cin 读入 stringstream (C)

新手上路,请多包涵

所以我试图从标准输入中读取这样的输入(使用 cin ):

亚当英语 85

查理数学 76

埃里卡历史 82

理查德科学 90

我的目标是最终将每个数据块存储在我创建的数据结构中自己的单元格中,所以基本上我想解析输入,这样每块数据都是独立的。由于每一行输入都是由用户一次输入的,所以每次我得到一整行需要解析的输入。目前我正在尝试这样的事情:

 stringstream ss;
getline(cin, ss);

string name;
string course;
string grade;
ss >> name >> course >> grade;

我遇到的错误是 XCode 告诉我没有匹配的函数调用 getline 这让我很困惑。 I have included the string library, so I’m guessing the error has to do with using getline to read in from cin to a stringstream ?这里的任何帮助将不胜感激。

原文由 user313 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 622
2 个回答

您快到了,错误很可能是1引起的,因为您尝试使用第二个参数 stringstream 调用 getline ,只需稍作修改并将数据存储在 std::cin 在一个 string 首先然后用它来初始化一个 stringstream ,你可以从中提取输入:

 // read input
string input;
getline(cin, input);

// initialize string stream
stringstream ss(input);

// extract input
string name;
string course;
string grade;

ss >> name >> course >> grade;


1. 假设您已包括:

 #include <iostream>
#include <sstream>
#include <string>

using namespace std;

原文由 Ziezi 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以只使用 cin >> name >> course >> grade; 因为 >> 无论如何都会读取到空格。

原文由 Weak to Enuma Elish 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题