Guten Abend Freunde,
Und zwar möchte ich die Zeilen einer Textdatei mit einer vorgegebenen Lösung vergleichen.
Die Textdatei ist folgendermaßen aufgebaut:
Es geht um einen multiple choice Test. Die erste Zeile ist die Lösung des Testes, und die darauffolgenden Zeilen beinhalten die Nummern der jeweiligen Kandidaten und ihre Lösungen.
Nun möchte ich praktisch die angegebenen Antworten mit der Lösung vergleichen(Richtig=1 Punkte, Falsch=-1, X bedeutet keine Antwort=0 Punkte).
Hier mein Code soweit:
Fehler werden zwar nicht angezeigt, aber ich bin mir unsicher ob er die zwei richtigen Antworten miteinander vergleicht.
Falls jemand einen Lösungsansatz meines Problems hätte, wäre ich äußerst dankbar.
LG
Edit: Kleine Änderungen vorgenommen. Als Test habe ich nur die erste Zeile der Antworten mit den Lösungen vergleichen lassen. Als Punktewert bekomme ich 15, was aber nicht stimmen kann.
Und zwar möchte ich die Zeilen einer Textdatei mit einer vorgegebenen Lösung vergleichen.
Die Textdatei ist folgendermaßen aufgebaut:
Code:
DDCBEEEABEDEBABBECBB
7592 DDCBEEEABEDEBABBCCBB
1911 DDCDEEEABEDEBAXBECBC
2777 DDCBEEEABEDEBABBECBB
9546 DDCBEEEADEDEBEBEECBB
1982 DBCBEEAABEDEBABBECBB
....
Es geht um einen multiple choice Test. Die erste Zeile ist die Lösung des Testes, und die darauffolgenden Zeilen beinhalten die Nummern der jeweiligen Kandidaten und ihre Lösungen.
Nun möchte ich praktisch die angegebenen Antworten mit der Lösung vergleichen(Richtig=1 Punkte, Falsch=-1, X bedeutet keine Antwort=0 Punkte).
Hier mein Code soweit:
C:
#include<stdio.h>
#include <string.h>
#include<stdlib.h>
int main()
{
int punkteK;
int n=40;
int i,x;
char Antworten[4096];
char schluessel[n];
FILE *datei_A;
char *datei = "exam.dat" ;
datei_A = fopen(datei,"r");
if(datei_A != NULL)
{
printf("Datei %s wurde geoeffnet !\n",datei);
fgets(schluessel,n,datei_A);
printf("Der Schluessel ist: %s",schluessel);
for(i=2;i<=300;i++)
{
if(fgets(Antworten,n,datei_A))
}
for(x=1;x<=25;x++)
{
{
if(Antworten[x+5]==schluessel[x])
{
punkteK=punkteK +1;
}
else if(Antworten[x+5]=='X')
{
punkteK=punkteK +0;
}
else
{
punkteK=punkteK -1;
}
}
}
printf("%i",punkteK);
fclose(datei_A);
}
else{
printf("\nDatei %s existiert nicht!\n",datei);
}
return 0;
}
Fehler werden zwar nicht angezeigt, aber ich bin mir unsicher ob er die zwei richtigen Antworten miteinander vergleicht.
Falls jemand einen Lösungsansatz meines Problems hätte, wäre ich äußerst dankbar.
LG
Edit: Kleine Änderungen vorgenommen. Als Test habe ich nur die erste Zeile der Antworten mit den Lösungen vergleichen lassen. Als Punktewert bekomme ich 15, was aber nicht stimmen kann.
Zuletzt bearbeitet: