У меня есть назначение, которое имеет txt-файл. Я должен сканировать первую строку и сравнить ее с другой линиейЧтение текстового файла и сравнение каждой строки
( BACCDEABCEEDCDABBAED 6734 BXCCDAABCEEDCDACBAED 7843 BADCXAABCEXXCDABBAED 2223 BCBAEACCDAEDCDABBAEA 2324 BACXDEABCEEDCDAABAED 3474 BACCDEABCEEDCDABBAED 3434 XADCDAABCEEDCDABBAED 6374 XXXXXCXXXXXXXXXXXAED 3332 BADCDEABCEEDCDADBCEX 3454 BACCXEABCEEDCXABBAED 0 )
Как бы я отделите первую для цифр и сравнить с [20] (Correct_ ответов) другие письма с первой линией 20?
Это то, что я до сих пор .........
#include <stdio.h>
#include <stdlib.h>
int main(){
char answer[20];
char studentAnswer[20];
int studentId[4];
int x;
int correct=0,wrong=0,notAttempted=0;
FILE * in = fopen("/Users/MarkB/Desktop/ASSIGNMENT3/exam.txt", "r");
FILE * out = fopen("/Users/MarkB/Desktop/ASSIGNMENT3/examRsults.txt", "w");
fscanf(in,"%d",studentId);
fscanf(in,"%s",answer);
fscanf(in,"%s",studentAnswer);
while (studentId !=0){
for (x=0; x<20;x=x+1){
if(answer[x]==studentAnswer[x]){
correct=correct + 1;
}
if(answer[x]!=studentAnswer[x] && studentAnswer[x]!='X'){
wrong=wrong + 1;
}
if(studentAnswer[x]=='X'){
notAttempted=notAttempted + 1;
}
}
}
fprintf(out,"--------Student Exam results------\n");
fprintf (out,"%d",studentId[0]);
fprintf (out,"Questions Correct: %d \n",correct);
fprintf (out,"Questions Wrong: %d \n",wrong);
fprintf (out,"Questions not attempted: %d \n",notAttempted);
system("pause");
return 0;
}
Нет «это то, что я получил до сих пор». У вас есть ** конкретный вопрос? Если нет, исследуйте немного. Это **, что ** трудно? – Downvoter
Первая строка вашего входного файла (игнорирование символа '' ('') является алфавитной строкой. Первое заявление для чтения:' fscanf (in, "% d", studentId); 'который запрашивает' int' и так что не прочитайте первый элемент, прежде чем идти дальше, нужно проверить возвращаемое значение из 'fscanf()' ** каждый раз **, которое в случае, если вы никогда не удосужились прочитать man-страницу, является количество полей успешно конвертировано –
Надежно блокирует код while (studentId! = 0) ', эта переменная' studentId' не изменяется. В любом случае, почему вы используете 'int studentId [4];' как если бы он были «int studentId;»? –