在C+中读取每行2个数字+; 我的C++很生疏。我想知道以以下格式读取输入的最佳方式是什么: 400 200 138 493 ...
我目前使用在C+中读取每行2个数字+; 我的C++很生疏。我想知道以以下格式读取输入的最佳方式是什么: 400 200 138 493 ...,c++,file,io,ifstream,C++,File,Io,Ifstream,我目前使用while(cin.peek()!=-1)检查EOF,然后在其中,我使用while(cin.peek()!='\n')检查换行符。这对于全文阅读来说很好,但是我如何将其限制为2个数字和/或仅获取这2个数字呢 int num1,num2; while(cin>>num1>>num2) { //... } 或 字符串行; int num1,num2; 细流ss; while(getline(cin,line)) { ssnum1>>num2; //...
while(cin.peek()!=-1)
检查EOF,然后在其中,我使用while(cin.peek()!='\n')
检查换行符。这对于全文阅读来说很好,但是我如何将其限制为2个数字和/或仅获取这2个数字呢
int num1,num2;
while(cin>>num1>>num2)
{
//...
}
或
字符串行;
int num1,num2;
细流ss;
while(getline(cin,line))
{
ssnum1>>num2;
//...
}
或
字符串行;
int num1,num2;
细流ss;
while(getline(cin,line))
{
ssnum1>>num2;
//...
}
while(std::getline(std::cin,some_string)){parse(line);}
然后你可以解析行,例如,创建一个std::stringstream()
并使用操作符>
将数字提取为两个int
。尽管另一个答案有效,我还是要尝试一下,谢谢<代码>while(std::getline(std::cin,some_string)){parse(line);}然后你可以解析这行,例如,创建一个std::stringstream()
并使用操作符>
将数字提取成两个int
。尽管另一个答案有效,我还是要尝试一下,谢谢!这就够了,谢谢。虽然如果我碰巧用3个数字来尝试,它会挂起等待第4个数字。但我认为我使用的输入保证是2个数字。谢谢。虽然如果我碰巧用3个数字来尝试,它会挂起等待第4个数字。但我认为我使用的输入保证是2个数字。
string line;
int num1,num2;
stringstream ss;
while(getline(cin,line))
{
ss<<line;
ss>>num1>>num2;
//...
}