2013-04-14 96 views
0

用C++是可以給予用戶與CIN聲明的默認值,然後讓他們退格,他們想改變什麼?例如:我給用戶一個選項來改變一個字符串的名字,我輸出的名字在屏幕上:「李四」,他們可以退格的名稱更改爲「約翰·史密斯」。CIN顯示默認值

回答

3

對於這樣和更多的功能,看看GNU Readline或其workalikes之一。它基本上是爲應用程序支持命令行與熟悉的功能編輯一樣向上箭頭重複以前的命令,那些以前的命令編輯庫,是的,你可以自定義呈現給用戶的文本,然後誰可以使用相同的編輯擊鍵會在shell中使用。

0

我可能是瘋了,但這裏有一個簡單的解決方案的Windows上的Visual Studio 2012的工作原理更新1.模擬應該讓他們在輸入緩衝區中,直到他們準備好被讀取你想要輸入的字符,和然後讀取輸入,等待換行符。

#include <iostream> 
#include <string> 
#include <windows.h> 

void InsertDefaultName(const std::string &def) { 
    HWND hwnd = GetConsoleWindow(); 
    for (char c : def) { 
     SendMessage(hwnd, WM_CHAR, c, 0); 
    } 
} 

int main() { 
    std::cout << "Enter name: "; 
    std::string name; 

    InsertDefaultName("John Doe"); 
    std::getline(std::cin, name); 

    std::cout << "You entered " << name << '\n'; 
} 

如果用戶是,比如說,按住一個鍵它到達InsertDefaultName()函數調用之前,這是值得注意的是,這可能無法完全正常工作。一個更強大的庫肯定是更好的,但是如果它沒有一個全新的庫,對於你來說足夠好的話,它就在這裏。