나는 char가되어야하기 때문에 examID를 나타내는 숫자를 보유하는 char 변수를 하나 가지고 있습니다. 내 텍스트 파일은 다음과 같다 : 각 라인의텍스트 파일에서 읽기 C
5 1 Exam 1 (audit 31.10.)
6 1 Exam 2 (audit 23.10.)
14 1 Lab 01 (audit 21.11.)
16 1 Lab 02 (audit 28.11.)
...
첫 번째 숫자는 examID이고, 둘째 그 시험 점수의 최대 납입하고, 라인 텍스트의 끝 나머지는 시험 이름입니다. 나는 examID 일치를위한 텍스트를 검색해야하고, 일치하는 경우 나중에 사용할 수 있도록 변수의 최대 개수와 검사 이름을 저장해야합니다.
char examName[100];
char tmp[100];
int examID;
int maxPoint=0;
FILE *fin=fopen("Exams.txt", "r");
while(fgets(tmp, sizeof(char)*100, fin)!=NULL) {
sscanf(tmp, "%d", &examID);
if(examID==s.examNum)
printf("%d", examID);
}
그래서 내가 경기를 발견하고 인쇄하고, 괜찮아요,하지만 난 라인과 시험의 이름으로 두 번째 숫자를 읽는 방법을 모르는이 내가 지금까지있는 것입니다.
작은 메모를, 아니 '및'제공이 없습니다 식별자가 al이기 때문에'sscanf'의 examName에 포인터를 준비하면 배열의 첫 번째 요소를 가리 킵니다. – AlienHoboken
팁 주셔서 감사하지만, 그것은 단지 작동하지 않습니다. 출력은 다음과 같이 보입니다 : 5 0 그 다음 이상한 문자. 5는 올바른 숫자이고, 0은 틀립니다 (모든 예에서 올바른 숫자 대신 0을 가짐). 문자열이이 세상에서 완전히 벗어났습니다. – yahzee
@yahzee - 이상한데, 먼저 내 쪽지를 확인하고 시도해보십시오. 초기화되지 않은 것처럼 들립니다. 데이터. 여전히 이상한 결과가 나오면 더 완벽한 코드 샘플로 업데이트하십시오. 당신이 텍스트 파일과 함께 위의 코드를 주면이 작업을 올바르게 볼 수 있습니다. – Mike