簡體   English   中英

在C ++問題中使用cin.get()獲取用戶輸入

[英]Getting user input using cin.get() in C++ question

我不確定我在這里缺少什么。 這是我在網站上找到的一小段代碼,然后將其放入程序中以查看其工作方式,然后稍后根據自己的喜好對其進行修改。 我包括iostream,此代碼段位於我的主要功能中。

char buffer[80];
cout << "Enter the string: ";
cin.get(buffer, 79);       // get up to 79 or newline
cout << "Here's the buffer:  " << buffer << endl;

發生的情況是該程序從不要求用戶輸入。 似乎只是打印出兩個cout語句,然后結束。 我從中獲得摘錄的站點顯示了以下輸出:

Enter the string: Hello World
Here's the buffer: Hello World

我的建議是忘記該代碼段的存在,而是查找std::getline 您將使用如下所示的內容:

#include <string>
#include <iostream>

int main() {
    std::string buffer;

    std::getline(buffer, std::cin);
    std::cout << "Here's the buffer: " << buffer;
    return 0;
}

當然,您可以像std::cin >> buffer一樣使用流提取,但是這樣做只會讀取輸入的一個“單詞”,而不是您之前的代碼試圖讀取的整個行。

該代碼返回當時輸入緩沖區中的所有內容,很可能什么都沒有。

只是要檢查在文件中鍵入一些數據,然后運行程序並添加“ <myfile”以查看數據是否已加載到緩沖區中。

如果要等待數據,則需要進行一些控制台操作。

要獲得新行作為分隔符,您應該使用

cin.get(buffer, 79, '\n');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM