COORD MenueKoord[10][10], was ist das für ein Array???
-
Also alles was ich noch finden konnte war COORD scrn;
Ich werde einfach mall alles posten und hoffe das das erlaubt ist:
unten stand noch die funktion für die zeitangabe aber die habe ich weggelassen,
ist so schon genug code.
In Menue.h stehen die Masken und folgende header (<stdio.h>, <string.h>, <conio.h>, <stdlib.h>, <time.h>, <windows.h>)#include "Menue.h" #define ESC 27 COORD scrn; struct Kundendaten { char kundenvorname[30]; char kundennachname[50]; char kundenort[50]; int kundenplz; char kundenstrasse[50]; int kundenhausnr; int kundentelefon; int kundenfax; int kundennummer; }kunden[100]; int getKey(); void gotoxy(int xpos, int ypos); void HauptMenue(int W,int Color); void AdressMenu(int W,int Color); void BestellMenu(int W,int Color); void LagerMenu(int W, int Color); struct tm *ptm ; char timestr[20]; FILE *fo; int nr = 0; int Menue = 0; int versuch[2][2] = {{100,200}, {150,300}}; COORD MenueKoord[10][10] = { { {15,11},{15,12},{15,13},{15,14},{15,15},{15,16},{52,11},{52,12},{52,13},{52,14} }, { {15,7},{15,8},{15,9},{15,10},{15,11},{52,7},{52,8},{52,9},{52,10} }, { {15,7},{15,8},{15,9},{15,10},{15,11},{52,7},{52,8},{52,9},{52,10} }, { {15,7},{15,8},{15,9},{15,10},{15,11},{52,7},{52,8},{52,9},{52,10} } }; char wahl; HANDLE hStdOut; FILE *fp; void main() { SetConsoleTitle("Einnahmenverarbeitungsprogramm version 1.0.1.0"); int y = 0; int x = 0; time_t seconds = time(0); ptm = localtime(&seconds);; sprintf(timestr,"%02i-%02i-%04i %02i:%02i:%02i", (int)ptm->tm_mday, (int)ptm->tm_mon+1, (int)ptm->tm_year+1900, (int)ptm->tm_hour, (int)ptm->tm_min, (int)ptm->tm_sec); hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdOut, FOREGROUND_BLUE| FOREGROUND_GREEN | FOREGROUND_INTENSITY);//| FOREGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED HauptMenue(0,0); scrn.X = 5; scrn.Y = 10; for (;;) { wahl = getKey(); } fclose (fo); } //--------------------------------------------------------------------------------------------- int getKey() { int x = 0; int len = 0; int Pos =0; int k = 0; int result=getch(); if (result==0) { result=256+getch(); } else k = result; fflush(stdin); //Pos = len = strlen(Help); switch (result) { case 72: if(Menue == 0) { scrn.Y--; if (scrn.Y < 0) scrn.Y = 0; //gotoxy(scrn.X, scrn.Y); } if(Menue == 1) { scrn.Y = scrn.Y - 2; if (scrn.Y < 0) scrn.Y = 0; } break; case 75: scrn.X--; if (scrn.X < 0) scrn.X = 0; // gotoxy(scrn.X--, scrn.Y ); break; case 77: scrn.X++; if (scrn.X > 79) scrn.X = 79; //gotoxy(scrn.X, scrn.Y ); break; case 80: scrn.Y++; if (scrn.Y > 25) scrn.Y = 25; //gotoxy(scrn.X, scrn.Y); break; case 97: //ALT/A system ("cls"); AdressMenu(0,0); Menue = 1; break; case 115: // ALT/S fo = fopen ("kundendatei.txt", "a+"); if (fo == NULL) { printf ("Die Datei existiert nicht, sie wird jetzt angelegt!"); fo = fopen ("kundendatei.txt", "w"); } fprintf (fo, "%s %s %s %d %d %s %d %d %d %s\n", kunden[nr].kundenvorname, kunden[nr].kundennachname, kunden[nr].kundenstrasse, kunden[nr].kundenhausnr, kunden[nr].kundenplz, kunden[nr].kundenort, kunden[nr].kundentelefon, kunden[nr].kundenfax, kunden[nr].kundennummer, timestr); nr++; fclose (fo); break; case 315: //F1 system ("cls"); AdressMenu(0,0); Menue = 1; break; case 317: //F3 system("cls"); BestellMenu(0,0); Menue = 2; break; case 318: //F4 system("cls"); LagerMenu(0,0); Menue = 3; break; case ESC: system("cls"); if (Menue == 0) exit (0); HauptMenue(0,0); Menue = 0; break; case VK_RETURN: break; case VK_BACK: break; default: return result; break; } SetConsoleTextAttribute(hStdOut, FOREGROUND_BLUE | FOREGROUND_GREEN | BACKGROUND_RED | FOREGROUND_INTENSITY);//| FOREGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED gotoxy(5,23); for (x = 5; x < 75; x++) printf(" "); gotoxy(7,23); printf("X = %d , Y = %d Taste = %d \t %s", scrn.X,scrn.Y,result,timestr); gotoxy(scrn.X,scrn.Y); SetConsoleTextAttribute(hStdOut, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY);//| FOREGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED return result; } void HauptMenue(int W,int Color) { int y=0; switch (W) { case 0: for (y=0; y < 25; y++) { gotoxy(0,y); printf("%s",haupt_menu[y]); } break; } scrn.X = -1; scrn.Y = -1; gotoxy(scrn.X,scrn.Y); } void AdressMenu(int W,int Color) { int posX=0; int posY=0; int y=0; switch (W) { case 0: for (y=0; y < 25; y++) { gotoxy(2,y); printf("%s",Adress_menu[y]); } break; } SetConsoleTextAttribute(hStdOut, FOREGROUND_BLUE | FOREGROUND_GREEN | BACKGROUND_RED | FOREGROUND_INTENSITY); gotoxy(38,5); printf("%s","ESC"); gotoxy(54,5); printf("%s","ALT/S"); gotoxy(21,8); printf ("%s", "ALT/A"); gotoxy(44,8); printf ("%s", "ALT/U"); gotoxy(69,8); printf ("%s", "ALT/L"); SetConsoleTextAttribute(hStdOut, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY); scrn.X = 15; scrn.Y = 11; gotoxy(scrn.X,scrn.Y); posX = scrn.X; posY = scrn.Y; printf ("MenueKoord= %d", MenueKoord[1][2]); } void BestellMenu(int W,int Color) { int y=0; switch (W) { case 0: for (y=0; y < 25; y++) { gotoxy(2,y); printf("%s",bestell_menu[y]); } break; } } void LagerMenu(int W, int Color) { int y=0; switch (W) { case 0: for (y=0; y < 25; y++) { gotoxy(2,y); printf("%s", lager_menu[y]); } break; } } /* SetConsoleTextAttribute(hStdOut, FOREGROUND_BLUE | FOREGROUND_GREEN | BACKGROUND_RED | FOREGROUND_INTENSITY); gotoxy(8,5); printf("%s","ESC"); gotoxy(23,5); printf("%s","ALT/S"); SetConsoleTextAttribute(hStdOut, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY); scrn.X = 15; scrn.Y = 7; gotoxy(scrn.X,scrn.Y); */ void gotoxy(int xpos, int ypos) { COORD scrn; HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE); scrn.X = xpos; scrn.Y = ypos; SetConsoleCursorPosition(hOuput,scrn); }
-
Hallo,
XcrAckX schrieb:
Wenn ich z.B versuche mir den inhalt von MenueKoord[1][1] mit printf ausgeben zu
lassen, bekomme ich immer nur die speicheradresse oder eine sonstige int zahl
(786447), weiß nicht genau was sie darstellen soll!!COORD ist eine typisierte Struktur.
http://msdn.microsoft.com/en-us/library/ms682119(VS.85).aspx (Hallo mngbd)An die x/y Werte kommst du mit der üblichen Strukturschreibweise, z.B.
MenueKoord[1][1].X, MenueKoord[1][1].Y
Gruß,
B.B.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
OK ich danke dir vielmals.
Werde gleich ausprobieren, das umzusetzen.
Gruß XcrAckX
-
spätestens hier hätte man sehen können wie man COORD nutzt
void gotoxy(int xpos, int ypos)
{
COORD scrn;
HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
scrn.X = xpos;
scrn.Y = ypos;
SetConsoleCursorPosition(hOuput,scrn);
}structur in windows.h
-
Wenn etwas wie BOOL, COORD in Grossbuchstaben im C-Quelltext steht, ist oft Microsoft dran beteiligt. Also kann ein Blick in das MSDN nicht schaden.
Die C-Compiler schlucken ja vieles - ist die Sammlung der Header in Menue.h denn optimal - ich hätte das aus dem Bauch raus - nur die Header die in Menue.h benutzt werden dort platziert und die anderen dort wo sie benötigt werden.
MfG f.-th.
-
Hab mir das noch mal durchgelesen -
du möchtest ANSI C lernen -
der Quelltext hat aber einige Besonderheiten, die auf Mircisoft-C hinweisen und unter ANSI nicht immer funktionieren müssen.
Aber das können dir andere besser erklären - ich mach ja C nur so zum SpassMfG f.-th.
-
bedeutet doch nicht das man nur auf den befehlssatz von ANSI C
zurück greifen darf. sonst wäre so ein befehl wohl nicht möglich.
GetStdHandle(STD_OUTPUT_HANDLE);
Es ist halt meiner meinug nach sinnvoll die ersten erfahrungen in c
unter DOS zumachen.
-
[quote="SeppJ"]786447 = 12*2^16 + 15. Das ist der Inhalt von MenueKoord[0][1], falls COORD vom Typ
short
ist (und noch ein paar andere Annahmen gelten die ich jetzt mal stillschweigend voraussetze). Ob signed oder unsigned kann ich aber nicht sagen - da Koordinaten gewöhnlich auch negativ sein können wird es wahrscheinlich ein signed Typ sein.
quote]
Also die rechnung sagt mir nix, aber der inhalt was immer das bedeutet,
wären dann die Koordinaten.
-
Ich dachte da mit Microsoft-C weniger an das von dir erwähnte, sondern eher an so was:
fflush(stdin);
MfG f.-th.
-
Ja stimmt ist keine sichere sache