Pole tekstowe w CMD

0

Czy jest jakaś opcja, by zrobić pole do wpisywania tekstu w CMD pomiędzy znakami?
np.

Wpisz coś tam: [Tu, pomiędzy np. cudzysłowami kwadratowymi, jest pole tekstowe jest miejsce na wpisanie max 12 znaków]
jeżeli zrobił bym to za pomocą

cout<<"["; cin>>zmienna const char*; cout<<"]";

to najpierw wyświetli się "[", potem będzie możliwość wpisania i na koniec wyświetli się "["
jak to zrobić?
z góry dzięki

4

W normalny sposób: korzystając z jakiejś biblioteki typu curses.

W sposób na „mam za wiele czasu”: przejrzeć dokumentację używanej konsoli i korzystając z odpowiednich kodów kontrolnych wypisać najpierw [, dwanaście spacji, ]; potem cofnąć kursor, i wreszcie przejąć bezpośrednią kontrolę nad wejściem (czyli nie używać buforowanego cin i rodzinki) i podmieniać spacje na wpisywane znaki.

0

@Althorion: napisałem "na kolanie" coś takiego. Działa, ale czy dałoby się zrobić to w pętli?


```#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
void setCursor(int x, int y)
{
     COORD c;
     c.X = x-1;
     c.Y = y-1;
     SetConsoleCursorPosition (GetStdHandle (STD_OUTPUT_HANDLE), c);
}
string a,b,c,d,e,f,g;
int main(){
cout<<"["<<"            "<<"]";
setCursor(2, 1);
a = getch();
cout<<a;
setCursor(3, 1);
b = getch();
cout<<b;
setCursor(4, 1);
c = getch();
cout<<c;
setCursor(5, 1);
d = getch();
cout<<d;
setCursor(6, 1);
e = getch();
cout<<e;
setCursor(7, 1);
f = getch();
cout<<f;
setCursor(8, 1);
g = getch();
cout<<g;
return 0;
}
0

Dałoby, czemu nie.

Ale raczej chcesz korzystać z czegoś… mniej średniowiecznego i kłopotliwego niż conio.h. PDCurses działa na Windowsie, jeśli Ci na tym zależy.

0

@Althorion: nie mam problemu z CONIO.H
i zrobiłem to łopatologicznie w pętli przy małej pomocy wpisu z 2004



#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
void setCursor(int x, int y)
{
     COORD c;
     c.X = x-1;
     c.Y = y-1;
     SetConsoleCursorPosition (GetStdHandle (STD_OUTPUT_HANDLE), c);
}
char var[12];
char c;s
int main(){
cout<<"["<<"            "<<"]";

for (int i=0; i<12; i++)
{
setCursor(i+2, 1);
c = getch();
cout << c;
var[i]=c;
}
return 0;
}```
0

@Althorion: gdzie mógłbym pobrać PDCurses?

1

Google Twoim przyjacielem: https://pdcurses.org/

1 użytkowników online, w tym zalogowanych: 0, gości: 1