我正在做一个学校项目,用户应在其中输入开关/案例菜单的内容。我做了一个单独的对象要在菜单中读取。该程序全部有关生命游戏。但是,我正在努力如何忽略所有\ n并仍仅读取第一个字符。因此,当用户输入\ n \ n \ n R时,我喜欢返回R,就像用户输入\ n \ n $$一样。但是现在我的代码执行了链接到R的命令三次。

char wereld::leesoptie ( ) {
char keuze = cin.get ( );       //So here the user will imput his \n \n RR
if (keuze == '\n') {
    while (keuze == '\n')       //I skip the \n's like this
    keuze = cin.get ( );
}
return keuze;                   //The returned value should be only the first real character of the string.
}//leesoptie

接下来是我用来执行leesoptie函数的代码:
int wereld::parameters (){
-----
keuze = leesoptie ( );
switch (keuze) {
        case 'T': case 't': return 0;
        ---

最佳答案

char c;
std::cin >> c;

默认情况下,这将读取单个字符而忽略任何空格(包括换行符)。 See for more info

10-07 17:56