繁体   English   中英

C++ cin.get 循环前

[英]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 的所有变体,

http://www.cplusplus.com/reference/iostream/istream/get/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM