2013-04-14 44 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()函数调用之前,这是值得注意的是,这可能无法完全正常工作。一个更强大的库肯定是更好的,但是如果它没有一个全新的库,对于你来说足够好的话,它就在这里。