我有三个 getline,但是一旦编译,输入就太多了
I have three getlines, but once I compile, there are too many inputs
#include <iostream>
#include <string>
#include <sstream>
#include <ctype.h>
using namespace std;
int main()
{
string team1, team2, temp;
int Days;
cout << "Days: ";
cin >> Days;
int teamScore1[Days];
int teamScore2[Days];
cin.clear();
cin.ignore();
cout << "!";
getline(cin, team1);
cin.clear();
cin.ignore();
cout << "#";
getline(cin, team2);
cin.ignore();
int i = 0;
while(team1.length() > 0)
{
temp = team1.substr(0, team1.find(" "));
stringstream(temp) >> teamScore1[i];
i++;
}
我只是在测试这段代码,我有一个 cin,还有 2 个 getline 但是当我编译和运行时,输入提示比我预期的要多。提前感谢您的帮助,很抱歉这个模糊的问题,我真的不够理解,无法解释它。
问题是getline
之后的cin.ignore()
。如果同时删除这两个cin.ignore()
问题将得到解决。
更详细
如果你检查 c++ 站点的 isstream::ignore 它基本上说cin.ignore()
将从输入流中读取一个字符。
cin.ignore((:从输入序列中提取字符并丢弃它们,直到提取了 n 个字符,或者一个字符等于 delim。 C++ cin.ignore(( 参考资料
但是getline()
将读取输入末尾的换行符并将其丢弃。因此,当您之后执行cin.ignore()
时,它将期待一些东西并因此等待另一个输入。
getline((:如果找到分隔符,则将其提取并丢弃C++getline(( 引用
例如,如果运行以下代码:
#include <iostream>
using namespace std;
int main() {
cin.ignore();
cout << "HELLO";
}
在您输入内容之前,它不会打印输出。
希望对您有所帮助!
相关文章:
- 我有三个 getline,但是一旦编译,输入就太多了
- 我无法在某个点(从用户那里)获得输入,即使没有错误弹出编译
- 直接输入编译错误 (C++)
- 编译一个自定义的tf操作,其中输入是5d张量
- 我无法编译谷歌测试,告诉链接器输入未使用(macOS)
- 将 ProcessEntry32.szExeFile 与用户输入的数据进行比较时,C++ _wcsicmp代码未编译
- variadic函数模板:基于n编译时值在运行时间自动n输入
- 创建一个程序,要求用户输入两个数字,并有三个可能的答案.代码未编译.数字(作为int)
- 有没有一种方法可以获得给定数量的输入,其中该数字是由c++中的编译时模板给定的
- 无法在Eclipse中编译带有输入和输出的C 程序
- 下面输入的代码未编译
- 使用 FFMPEG 将每个输入图像转换为 H264 编译时出错,该图像在 MevisLab 中运行的 Visual St
- 两个GCC编译了相同的输入,生成了两个不同的代码(第二个错误)
- 从C 调用的编译MATLAB函数的输入参数结构
- C++交叉编译不处理换行输入文本文件
- 扩展编译器以在编译时计算"complicated"函数(具有已知的输入值),超出"constexpr"的范围
- 为什么具有引用指针的输入的函数无法编译
- c++ 将函数输出重定向到编译的程序输入,反之亦然
- 使用标准输入流会导致编译失败
- 错误LNK1181:编译为.LIB时无法打开输入文件