Charas aus Array werden nich ausgegeben
-
SeppSchrot schrieb:
Mit deiner %d in dem printf-Aufruf sagst du, dass der Wert als Ganzahl interpretiert werden soll.
Du meinst sicher %c .Das kommt auch noch dazu,wenn du %d nutzt,wird glaub ich die Zahl aus dem ASCII Code ausgegeben. Also # wär dann 35 und * 42.
Mir ist noch eingefallen,das du bei der for-Schleife auch einfach statt <= , < schreiben kannst.
MfG
meissner
-
hab ich´s etwas umgeädert. Warum funzt das jetzt nich?
#include <stdio.h> //Variables char field[80][50]; int x,y,posx,posy; //Initialing int initial(){ //Initial variables posx=18; posy=38; //Initial fieldarray for (y=0;y<=49;++y){ for (x=0;x<=79;++x){ field[x][y]=' '; } } //Set charactere on definied position field[posx][posy]='#'; //The whole array were give out for (y=0;y<=49;++y){ for (x=0;x<=79;++x){ printf("%c",field[x][y]); } } } //Mainfunction int main(){ int initial(); //Wait until keypressed getchar(); }
So bekomme ich einen fehler: return value missing
Wenn ich den return wert null dann hab läuft es aber wieder
ohne ausgabe. Ist der aufruf von 'initial' mitint initial();
überhaupt richtig?
Und woführ muss dasreturn 0;
dahin?
Und was is mit dem Coursor? Wie kann ich den
an ne beliebige prosition bringen?
-
Ich kann mir irgendwie nicht vorstellen, dass solch ein Programm von dir verlangt wird, ohne dass ihr vorher Sachen wie Funktionsaufrufe und Rückgabewerte besprochen habt.
Das int vor dem Aufruf in main muss weg.
Wenn du wie im Falle von Initial keinen Wert zurückliefern möchtest, schreibst du eben void statt int.
-
FBIagent schrieb:
Ist der aufruf von 'initial' mit
int initial();
überhaupt richtig?
Nö eigentlich nicht,es müsste initial() heißen,jedoch solltest du dir mal anschaun was der Rückgabetyp bei Funktionen für einen Zweck hat,dann kannst du dir die Frage mit dem return 0 auch beantworten.
Für deinen Cursor einfach mal die Such-Funktion des Forums nutzten,ich denke da wirste etwas finden.
MfG
meissner
-
hat mir wirklich sehr geholfen. Jetzt ma weiter an nachgemachtes pacman
tüfteln. Ich glaub so wenig weis ich doch nicht. ich muss nur noch einmal
wissen wie ich die fehlerüberprüfung ausschalten kann. Poste einer ma bitte
kurz.
-
Das ist ja schoen und gut das du dir ein Ziel gesetzt hast,aber versuch wirklich erst mal die Grundlagen zu festigen. Denn mit den Fragen machst du mir nicht den Eindruck das die viel Ahnung hast...und Pacman ist nun doch eher etwas fuer Fortgeschrittende.
Was meinst du mit Fehlerueberpruefung?
MfG
meissner
-
mit der fehlerüberprüfung hat sich schon erledigt.
Hab mal was mit C gemacht aber jetzt weis ich eigentlich garnix mehr.
Musste mich wegen der Schule auf TP konzentrieren und bezüglich meines
Homepage Projekts musste ich mich auf HTML, JS und PHP konzentrieren.Eigentlich ist das Pacman nur berechnung(nicht wirklich schwer). Außer die
dateioperationen und die tastaturabfrage. Wo ich noch keine ahnung von hab sind
die dateioperationen. Da bräuchte ich´n paar befehle.Meine tastaturabfrage läuft noch nicht, vieleicht könnt ihr mir dabei
helfen. Nach zwei tastendrücken hört das prog auf(egal was führ tasten man
drückt).
Wie man vieleicht unschwer erkennen kann sollte die schleife aber solange
durchlaufen, bis Q gedrückt wird.Momentaner tastaturabfragecode(mit hauptschleife):
char keypress; do{ keypress=0; if (getch()) keypress=getch(); }while(keypress=='q');
-
char ch=0;
int durchlauf=0;do { ch=getch(); durchlauf++; }while(ch!='q' && durchlauf<=2);
meinst du so?
ps:ich würde dir empfehlen mal ein fachuch zu lesen...;)
-
@FBI-Agent
Zum Positionieren des Cursors solltest du dir mal die Konsolen-FAQ ansehen, wenn du für Windows programmierst, und die Linux-FAQ, wenn du für Linux programmierst.
-
ich muss das so haben:
Fals ich eine Taste drücke soll diese direkt in keypressed gespeichert werden.
So hab ichs jetzt gelöst.
do{ keypress=0; if (keypress=getch()); }while(keypress!='q');
-
Spar dir das if() oder hast du da noch was stehen?
So gehts auch:
do{ keypress=getch(); }while(keypress!='q');
Ich vermute ja, dass du keypress danach auswerten willst. Schau dir dazu mal switch() an.
-
möchte nicht, dass das Programm an der stelle der Tastaturabfrage stehen
bleibt. Das Programm soll weiterlaufen auch wenn ich nichts drücke.
-
FBIagent schrieb:
möchte nicht, dass das Programm an der stelle der Tastaturabfrage stehen
bleibt. Das Programm soll weiterlaufen auch wenn ich nichts drücke.Dann brauchst du was systemspezifisches. Für welches Betriebssystem compilierst du?
-
mach das unter WinXP.
Mit dem Compiler ICC-Win32.
-
Dieser Thread wurde von Moderator/in AJ 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.
-
ich hier wohl nochmal auf eine antwort hoffen?
Und warum eigentlich verschoben in Dos und Win32 console?
is doch ne frage über ansi C
-
@FBIAgent
Ganz einfach, weil das was du willst etwas systemspezifisches ist und damit nichts mehr mit ANSI-C zu tun hat.Schau dir für dein Problem mal die Konsolen-FAQ an. Such speziell nach der Funktion kbhit() :). In der Konsolen-FAQ findest du auch Funktionen zum Positionieren des Cursors (z. B. gotoxy()).