Dodałem taką funkcję do głównych programu, treść:
1
2
3
4
5
6
7
8
9
10
11
12
|
#ifndef gotoxy_h
#define gotoxy_h
#include <windows.h>
void gotoxy(int x, int y)
{
COORD c;
c.X = x-1;
c.Y = y-1;
SetConsoleCursorPosition (GetStdHandle (STD_OUTPUT_HANDLE), c);
}
#endif // gotoxy
|
Och, skąd ja znam ten kod...? ;) Pisałem Ci, że musisz zdefiniować tę funkcję jako inline. W pliku nagłówkowym nie może być zdefiniowana zwykła funkcja, bo w każdym miejscu jej dołączenia dostaniesz jej nową definicję, na co kompilator nie pozwoli. Ale jeśli kod będzie wyglądał tak:
#ifndef gotoxy_h
#define gotoxy_h
#include <windows.h>
inline void gotoxy(int x, int y)
{
COORD c;
c.X = x-1;
c.Y = y-1;
SetConsoleCursorPosition (GetStdHandle (STD_OUTPUT_HANDLE), c);
}
#endif // gotoxy
..to powinno załatwić sprawę. Funkcje inline są rozwijane w miejscu wywołania, t.j. nie są wywoływane jak normalne funkcje, tylko w kod programu wstawiany jest explicite kod takich funkcji. Te funkcje mogą (a nawet jest wskazane) być zdefiniowane w plikach nagłówkowych.