大佬教程收集整理的这篇文章主要介绍了调用 getline 后在 Main 中忽略 cin,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
为一个班级做一个项目,我需要从用户那里获取一个数字并根据这个数字执行任务。在输入数字之前从命令行读取图形。问题是 cin>> 被跳过并且不允许用户输入数字。我试过将 cin.clear() 和 cin.ignore() 放在几个不同的地方,但似乎没有帮助。包括相关代码
编辑:为了澄清,当我像这样运行程序时我输入了一个图形:./streets > bel.osm.graph。代码输出“输入您的号码:”,然后在您输入号码之前结束。
int main(int argc,char *argv[])
{
String input;
int colct;
sparseMat graph;
readMat(graph,colct);
cout << "Enter your number: ";
cin >> input; //is being skipped
if(input == "1"){
cout << "n= " << graph[0][0].getVal() << "; m= " << graph[0][1].getVal() << ".\n";
}
}
voID readMat(sparseMat& graph,int& colct)
{
colct = 0;
String line;
while (getline(cin,linE)) // get next full line of text; NB: text
{
iStringstream lstream(linE);
sparseRow neighbours;
nz next;
while (lstream>> next) { // peel off values in this line,one at a time
neighbours.push_BACk(next);
}
graph.push_BACk(neighbours);
}
cin.clear();
}
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的调用 getline 后在 Main 中忽略 cin全部内容,希望文章能够帮你解决调用 getline 后在 Main 中忽略 cin所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。