• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Rysowanie w pliku tekstowym C++

Object Storage Arubacloud
0 głosów
400 wizyt
pytanie zadane 27 marca 2017 w C i C++ przez ajron Początkujący (250 p.)

Witam, mam tak problem:

Rysuję sobie w konsoli za pomocą for i funkcji gotoxy(int, x, int y), która ustawia kursor w konsoli na podanych współrzędnych, figurę geometryczną, na przykład kwadrat pusty w środku. W konsoli działa jak należy. W jaki sposób mogę taki sam kwadrat narysować w pliku tekstowym? Zwykłe przekierowanie strumienia do pliku za pomocą fstream powoduje zapisanie wszystkich znaków w jednym ciągu, bo gotoxy działa tylko w konsoli.

Oto kod funkcji gotoxy:

void gotoxy(int x, int y)
{
	COORD coord;
	coord.X = x;
	coord.Y = y;
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

Czy da się go zmodyfikować tak, żeby ustawiał kursor w pliku tak jak to robi w konsoli?

komentarz 27 marca 2017 przez gladius882 Początkujący (450 p.)

Jeśli chodzi Ci o zapisanie tego co wyświetlasz w konsoli do pliku może zainteresuje Cię funkcja ReadConsoleOutput. Możesz wewnątrz funkcji gotoxy wklepać kod, który zapisze znaki w konsoli do pliku.

Nie wiem dokładnie jak działa ta funkcja, więc musiałbyś trochę o tym poczytać.

Jednak jest to sposób mało wydajny, bo za każdym razem otwierasz plik i zapisujesz wszystkie znaki od nowa.

2 odpowiedzi

0 głosów
odpowiedź 27 marca 2017 przez niezalogowany
wybrane 28 marca 2017 przez ajron
 
Najlepsza

Żeby w pliku wszystko wyglądało jak należy to musiałbyś w miejscu pustych pól drukować np spacje. Czyli sposób z SetConsoleCursorPosition po prostu ci nie zadziała - musisz zmodyfikować samo ustawianie znaku na danej pozycji

komentarz 28 marca 2017 przez ajron Początkujący (250 p.)
tak też zrobiłem, było najszybciej :)
0 głosów
odpowiedź 27 marca 2017 przez mokrowski Mędrzec (155,460 p.)
Tu masz kompletny przykład zapisania ekranu bufora cmd. Wystarczy dodać otwarcie pliku i zapisać do/z.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms685032(v=vs.85).aspx

Podobne pytania

0 głosów
1 odpowiedź 947 wizyt
0 głosów
3 odpowiedzi 2,358 wizyt
pytanie zadane 1 marca 2017 w C i C++ przez lukasz9819 Początkujący (360 p.)
0 głosów
1 odpowiedź 319 wizyt
pytanie zadane 11 listopada 2020 w C i C++ przez Gohard Nowicjusz (150 p.)

92,555 zapytań

141,402 odpowiedzi

319,541 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...