firt всего моего английского не так хорош, я этого хватит.
Хорошо, у меня есть эти коды, и вы можете увидеть основную логику в нем
#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' и после нажатия enter вывожу новую строку после выполнения cls. Я не хочу показывать новую строку. Как мне это сделать. Спасибо за прочтение.
Решение использует getline
#include <string>
string BasilanTus;
getline(cin, BasilanTus);
Если вы не используете функцию ОС или платформу, вам нужно нажать Enter, чтобы сообщить cin
что вход завершен.
Кроме того, попробуйте следующее:
if (std::tolower(BasilanTus) == 'a')
Используйте std::tolower
или std::toupper
поэтому вам нужно выполнить только одно сравнение.