【发布时间】:2017-06-30 06:33:19
【问题描述】:
我正在尝试使用多个分隔符从命令提示符读取数据,例如:
数据 1、数据2、数据3。
我希望代码读取第一个逗号之前的数据,之后和第二个逗号之前的数据,最后是之后但在句点之前的数据。我一直在用这个:
getline(cin, VAR, ',');
cin.get();
getline(cin, VAR2, ' ');
getline(cin, VAR3, ',');
cin.get();
getline(cin, VAR4, '.');
只要输入正确的信息,它就会做我想做的事。但是,我如何检查信息是否不正确?因为如果用户没有输入两个逗号和一个句点,程序就会卡住,因为我假设 cin 流在没有找到 getline() 读取中指定的分隔符后被破坏。我试过这个:
if (cin.fail()) {
cout << "failure" << endl;
}
在 getline 之后,但如果不输入分隔符,它将永远不会运行。执行此操作、检查错误并查看数据是否未以所需格式输入的最佳方法是什么?
【问题讨论】: