c ++按Enter键到新行

时间:2014-11-12 20:34:02

标签: c++ line-breaks

我所有的英语都不是那么好我的事情就足够了。
好的,我有这些代码,你可以看到它的基本逻辑

#include <cstdlib>
#include <iostream>
#include <time.h>

using namespace std;

int main() {
    int i, dizi2[100], imlec=0;
    char BasilanTus; 
    BasilanTus = ' ';
    setlocale(LC_ALL, "Turkish"); 
    srand(time(0));

    for (int i = 0; i < 10; i++){

        dizi2[i] = rand() % 10;
    }

    for (i = 0; i<20; i++) {
        for (i = 0; i<10; i++){
            if (i == imlec)
            {
                cout << "--> " << dizi2[i] << endl;
            }
            else
            {
                cout << "    " << dizi2[i] << endl;
            }
        }
        cout << "(a veya A tuşu aşağı götürür )\n(d veya D tuşu yukarı götürür)\n(c veya C tuşu programdan çıkarır)\nOkun Yonunu Secin....:";
        cin >> BasilanTus;
        if (BasilanTus == 'a' || BasilanTus == 'A')
        {
            if (imlec > 8)
            {
                imlec = -1;
            }
            imlec = imlec + 1;
        }
        else if (BasilanTus == 'd' || BasilanTus == 'D')
        {
            if (imlec <1)
            {
                imlec = 10;
            }
            imlec = imlec - 1;
        }
        system("cls");
    }
}



我的问题是,当我写'a'并按下回车后,在执行cls后弹出一个新行。我不想展示新的一条线。我怎样才能做到这一点。谢谢你的阅读。

2 个答案:

答案 0 :(得分:1)

解决方案是使用getline

#include <string>

string BasilanTus;
getline(cin, BasilanTus);

答案 1 :(得分:0)

除非您使用操作系统或平台特定功能,否则必须按Enter键告诉cin输入已完成。

另外,试试这个:

if (std::tolower(BasilanTus) == 'a')  

使用std::tolowerstd::toupper,这样您只需执行一次比较。