Ich bereauche Hilfe
-
Ok sorry habs vorher vergessen.
Also ich bin jetzt wieder ein Schritt weiter das Programm zeigt mir jetzt ein normlaes txt file an zu dem hab ich folgenden Quellcode benutzt. Jetzt muss ich was tun das ich auch antworten kann.Quellcode :
#include "stdafx.h" #include <string.h> int main(int argc, char* argv[]) { char file[50]; char antwort[300]; printf("*******************************************\n"); printf("***Wilkommen im multiple choice Apruefer***\n"); printf("*******************************************\n\n\n\n"); printf("Bitte geben sie den Namen der Pruefung ein.\n"); scanf("%s", file); strcat (file, ".txt"); printf("%s", file); FILE * fp; fp = fopen(file, "r"); while (!feof (fp)) { fscanf(fp,"%[^\n]\n",antwort); printf("%s",antwort); } }
-
Wie gesagt - strukturier dir erstmal das Textfile mit den Frage und Antworten, z.B. so:
Frage 1? 3 2 erste Antwort zweite Antwort dritte Antwort Frage 2? 4 1 erste Antwort zweite Antwort dritte Antwort vierte Antwort ...
(die Zahlenpaare nach der jeweiligen Frage geben die Anzahl der Antworten und den Index der korrekten Antwort an)
-
CStoll schrieb:
Wie gesagt - strukturier dir erstmal das Textfile mit den Frage und Antworten, z.B. so:
Frage 1? 3 2 erste Antwort zweite Antwort dritte Antwort Frage 2? 4 1 erste Antwort zweite Antwort dritte Antwort vierte Antwort ...
(die Zahlenpaare nach der jeweiligen Frage geben die Anzahl der Antworten und den Index der korrekten Antwort an)
Das hab ich jetzt. Es zeigt mir aber alle Fragen und Antworten an ich brauch etwas um nun Antworten zu können in dem Programm.
Es zeigt mir nun nur alle fragen und antworten an.
-
Struktur im Programm:
- lies die nächste Frage ein und zeige sie an.
- lies die beiden Zahlenangaben ein (count und korrekt)
- lies count Zeilen ein und gib sie mit laufender Nummer aus
- hol dir die Antwort des Nutzers und vergleich sie mit dem Wert in korrekt
(wenn die Antwort stimmt, erhöhst du den Punktezähler, den du am Ende ausgeben kannst)
-
CStoll schrieb:
Struktur im Programm:
- lies die nächste Frage ein und zeige sie an.
- lies die beiden Zahlenangaben ein (count und korrekt)
- lies count Zeilen ein und gib sie mit laufender Nummer aus
- hol dir die Antwort des Nutzers und vergleich sie mit dem Wert in korrekt
(wenn die Antwort stimmt, erhöhst du den Punktezähler, den du am Ende ausgeben kannst)
das hab ich alles im struktogramm^^... jedoch kenn ich die C codes für das nicht.
-
Klar kennst du sie - einlesen mit fscanf() (hast du ja oben schon verwendet), Ausgaben mit printf() und Nutzerantworten bekommst du mit scanf() (oder indem du stdin als Datei an fscanf() übergibst).
(für den dritten Schritt benötigst du eine for()-Schleife)
-
CStoll schrieb:
Klar kennst du sie - einlesen mit fscanf() (hast du ja oben schon verwendet), Ausgaben mit printf() und Nutzerantworten bekommst du mit scanf() (oder indem du stdin als Datei an fscanf() übergibst).
(für den dritten Schritt benötigst du eine for()-Schleife)
EDIT : ok habs jetzt begriffen. Weiss du per zufall wie dann die befehle in der klammer aussehen da hab ich keinen plan aber den sinn begreif ich jetzt
-
printf("1. FRAGE\n"); printf("welchen Datentyp kann man fuer ganze Zahlen verwenden? \n1: int\n2: float\n3: double\n\n"); scanf("%i", &iAntwort); if( iAntwort == 1)
sowas bringt mir nix ne?
-
Welche Klammer meinst du denn?
(btw, wenn du die einzelnen Fragen direkt in den Quelltext schreibst, wird dein Programm extrem unflexibel - anstelle des zweiten printf() solltest du die Fragen und Auswahlmöglichkeiten aus der Datei einlesen)
-
#include "stdafx.h" #include <string.h> #include <io.h> #include <direct.h> int main(int argc, char* argv[]) { char file[50]; char antwort[300]; int abbruch = 0; long myDir; struct _finddata_t dirInfo; char suchmuster [101] = "*.txt"; char dateiname[100][100]; char frage[100][100]; char antwort1[100][100]; char antwort2[100][100]; char antwort3[100][100]; char antwort4[100][100]; char antwort5[100][100]; int punkte = 0; int antworrt; int richtigeantwort[100]; int gelesen; int pl = 0; int index; int i; printf("********************************************\n"); printf("***Wilkommen im multiple choice Abpruefer***\n"); printf("********************************************\n\n\n\n"); FILE * fp; while(abbruch != 1){ _chdir (".\\"); myDir = _findfirst(suchmuster, &dirInfo); printf("1 %s\n", dirInfo.name); strcpy(dateiname[1], dirInfo.name); index=2; while(1){ gelesen = _findnext(myDir, &dirInfo); if(gelesen == 0) { printf("%i %s\n", index, dirInfo.name); strcpy(dateiname[index], dirInfo.name); index++; } else break;} _findclose(myDir); printf("Wählen sie bitte den Test. "); scanf("%i", &pl); printf("\nDie Datei \"%s\" wird geoeffnet\n", dateiname[pl]); fp = fopen(dateiname[pl], "r"); i=1; while(!feof(fp)){ printf("%i ", i); fscanf(fp, "%[^\n]\n", frage[i]); fscanf(fp, "%[^\n]\n", antwort1[i]); fscanf(fp, "%[^\n]\n", antwort2[i]); fscanf(fp, "%[^\n]\n", antwort3[i]); fscanf(fp, "%[^\n]\n", antwort4[i]); fscanf(fp, "%[^\n]\n", antwort5[i]); fscanf(fp, "%i\n", &richtigeantwort[i]); printf("%s\n %s %s %s %s %s \n", frage[i], antwort1[i], antwort2[i], antwort3[i], antwort4[i], antwort5[i] ); if(antworrt != richtigeantwort[i]) printf("Falsch"); else if (antworrt == richtigeantwort[i]) {printf("Richtig!"); punkte = punkte + 1;} i++; }; fclose(fp); printf("\nMoechten Sie einen weiteren Test bearbeiten? Ja: 0, Nein: 1. Ihre Wahl: "); scanf("%i", &abbruch); } return 0; }
so jetzt zeigts mir 1 Fehler an 3 warnungen ich hab kein plan was die sind wenn ich die habe sollte es gehen
Kompilierung läuft... plion.cpp C:\Dokumente und Einstellungen\B.i.g. Daddy\Desktop\Projekt Wusel\plion\plion.cpp(14) : warning C4101: 'antwort' : Unreferenzierte lokale Variable C:\Dokumente und Einstellungen\B.i.g. Daddy\Desktop\Projekt Wusel\plion\plion.cpp(13) : warning C4101: 'file' : Unreferenzierte lokale Variable C:\Dokumente und Einstellungen\B.i.g. Daddy\Desktop\Projekt Wusel\plion\plion.cpp(85) : warning C4700: Lokale Variable 'antworrt' wurde ohne Initialisierung verwendet Linker-Vorgang läuft... LINK : fatal error LNK1168: "Debug/plion.exe" kann nicht zum Schreiben geoeffnet werden Fehler beim Ausführen von link.exe. plion.exe - 1 Fehler, 3 Warnung(en)
Mein txt :
Sam ist cool? Ja Nein Vieleicht 1.30 1.20 4 Sam ist king? Ja Nein Vieleicht 1.30 1.20 4 Sam ist der mit dem? Ja Nein Vieleicht 1.30 1.20 4 Sam ist sam? Ja Nein Vieleicht 1.30 1.20 4 Sam ist gott? Ja Nein Vieleicht 1.30 1.20 4
-
Plion schrieb:
Mein txt :
Sam ist cool? Ja Nein Vieleicht 1.30 1.20 4 Sam ist king? Ja Nein Vieleicht 1.30 1.20 4 ...
Liest du CStolls Posts überhaupt?
CStoll schrieb:
Frage 1? 3 2 erste Antwort zweite Antwort dritte Antwort Frage 2? 4 1 erste Antwort zweite Antwort dritte Antwort vierte Antwort ...
-
anyway danke Cstoll für deine hilfe ich habs jetzt geschafft... allhamdollelah