Seite 1 von 1
Kleine Frage zu C-Programm
Verfasst: 23. Dez 2010, 17:07
von Blue.Shark
Hi,
ich sitz schon richtig lange an einem Problem, ich hoffe jemand kann mir helfen:
Ich Programmiere in C gerade ein programm, bei denen Befehle ausgegeben werden.
Dann benutze ich eine Sleep funktion, damit 3 Sekunden gewartet wird. Das klappt alles.
So, nach den 3 Sekunden wird eine eingabe erwartet.
Jetzt zum Problem: Wenn ich in den 3 Sekunden, wo das Programm nichts macht bzw "schläft" schon tippe, wird es zwar nicht angezeigt, was ich getippt habe, aber nach den 3 Sekunden dann schon.
Und das will ich vermeiden. Also dass wenn ich in den 3 Sekunden lang etwas eintippe, der Compiler das einfach ignoriert.
Wäre sehr dankbar wenn da jemand einen Lösungsansatz hat^^
Re: Kleine Frage zu C-Programm
Verfasst: 23. Dez 2010, 19:44
von Benu
Nach dem sleep einfach mal "fflush(stdin);" versuchen. Und danach am besten fgets() nutzen solange du nicht irgendwelche komplizierten formatstrings brauchst.
Re: Kleine Frage zu C-Programm
Verfasst: 23. Dez 2010, 23:09
von Blue.Shark
Das klappt so leider nicht

Re: Kleine Frage zu C-Programm
Verfasst: 23. Dez 2010, 23:16
von Benu
Bitte mal Source Code hier reinspoilern/per Pn an mich und die besagte Stelle kennzeichnen. Kann mir grad nicht vorstellen, dass das nicht geht.
Edit:
Doch klar kann ich mir vorstellen, dass das nicht geht. Werd mir das aber nochmal die Tage überlegen. Bis dahin wäre der Code ganz gut.
Re: Kleine Frage zu C-Programm
Verfasst: 25. Dez 2010, 10:35
von Blue.Shark
Ok, danke.
Weiß denn kein anderer ne Lösung?
Re: Kleine Frage zu C-Programm
Verfasst: 27. Dez 2010, 19:40
von Piru
Der Code würde uns da echt weiterhelfen, dir zu helfen

Re: Kleine Frage zu C-Programm
Verfasst: 27. Dez 2010, 19:50
von Blue.Shark
Also der Quellcode sieht so aus:
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
void main()
{
srand(time(0));
char zus_buchstaben[100];
char buchstaben [4];
buchstaben[0]='s';
buchstaben[1]='e';
buchstaben[2]='d';
buchstaben[3]='f';
char eingabe[100];
int k=0,zahl,pruefer,zaehler=0;
printf("\n----------------------------------------------------------------\n");
printf("Das Spiel kann nun anfangen. Wenn Sie bereit sind, druecken sie Enter\n");
system("PAUSE");
system("cls");
while(true)
{
zahl=rand()%4;
zus_buchstaben[k++]=buchstaben[zahl];
zus_buchstaben[k]='\0';
system("cls");
----> printf("Wort:\t%s\n",zus_buchstaben);
----> Sleep(3000);
----> system("cls");
----> printf("Eingabe:");
----> scanf("%s",eingabe);
pruefer=strcmp(zus_buchstaben,eingabe);
if(pruefer!=0)
{
printf("Sie haben falsch eingegeben.\n");
printf("Ingesammt haben Sie %d Woerter richtig eingegeben\n",zaehler);
break;
}
else
zaehler++;
}
system("PAUSE");
}
Re: Kleine Frage zu C-Programm
Verfasst: 28. Dez 2010, 15:17
von Blue.Shark
Hat keiner eine Idee?
Ich hätte da noch eine kleine Frage:
In einer Datei kann ich ja mit folgendem Befehl schreiben:
fprintf(datei,"text");
Wenn ich das aber mache löscht der alles andere Weg.
Geht das irgendwie, dass ich z.b. "Hallo" in die 4.te Zeile schreiben kann?
(Der Rest soll unverändert bleiben)
Re: Kleine Frage zu C-Programm
Verfasst: 28. Dez 2010, 18:08
von Benu
Also die Frage zum Sleep Problem kann ich noch verstehen. Das ist kompliziert und wahrscheinlich nicht lösbar. Warum sollte es auch^^
Aber die Frage mit dem File Handle kann man sich zehnmal schneller selbst beantworten, wenn man etwas ehrgeiz an den Tag legt:
http://cplusplus.com/reference/clibrary/cstdio/fseek/
http://cplusplus.com/reference/clibrary/cstdio/fputs/
oder einfach mal fopen mit "a+" versuchen.