簡體   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