[英]C++ cin.get before a loop
嘿伙计们,我正在设计一个 C++ 程序,它读取一个或多个以负数结尾的正实数序列。 为了测试这是否正确完成,我正在输出用户输入的第 5 个数字。 我正在使用 while 循环来填充我的数组但是,我的cin.get(x)
使我的程序无法编译。 请帮助我修复我的代码。
PS如果有任何帮助,这是编译器错误:
解决方案1.cpp:在 function
'int main()'
:
解决方案1.cpp:19:错误:没有匹配的function调用'std::basic_istream<char, std::char_traits<char> >::get(int&)'
/usr/include/c++/4.4/istream:280:
注意:候选人是:类型名typename std::basic_istream<_CharT, _Traits>::int_type std::basic_istream<_CharT, _Traits>::get() [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.4/istream:294:
注意:std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::get(_CharT&) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.4/istream:321:
注意:std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::get(_CharT*, std::streamsize, _CharT) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.4/istream:332:
注意:std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::get(_CharT*, std::streamsize) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.4/istream:355:
注意:std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::get(std::basic_streambuf<_CharT, _Traits>&, _CharT) [with _CharT = char, _Traits = std::char_traits<char>]
/usr/include/c++/4.4/istream:365:
注意:std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::get(std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]
#include <iostream>
using namespace std;
int main()
{
char num[100] = {0};
int y = 0;
int x = 0;
int flag = 0;
cout << "Please enter line of numbers: ";
while (flag > 0)
{
cin.get(x);
if (x < 0)
{
flag = -1;
}
else
{
num[y] = x;
y = y + 1;
}
}
cout << " " << num[4] << endl;
return 0;
}
如果您真的想逐个字符地阅读,请将cin.get(x)
更改为x = cin.get()
,但从上下文来看,我猜您想阅读一个整数。 为此,请使用cin >> x
。
如果您尝试从命令行读取 integer,则语法为cin >> x;
. cin.get()
读取单个字符,并按值返回。
使用“x=cin.get();” 而不是“cin.get(x);”
有关更多信息,请参阅下面提到的链接中 cin.get 的所有变体,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.