我所有的英语都不是那么好我的事情就足够了。
好的,我有这些代码,你可以看到它的基本逻辑
#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后弹出一个新行。我不想展示新的一条线。我怎样才能做到这一点。谢谢你的阅读。
答案 0 :(得分:1)
解决方案是使用getline
#include <string>
string BasilanTus;
getline(cin, BasilanTus);
答案 1 :(得分:0)
除非您使用操作系统或平台特定功能,否则必须按Enter键告诉cin
输入已完成。
另外,试试这个:
if (std::tolower(BasilanTus) == 'a')
使用std::tolower
或std::toupper
,这样您只需执行一次比较。