C로 프로그래밍하는 법을 배우는 중이며 파일을 사용하는 데 어려움을 겪고 있습니다.파일의 특정 부분을 액세스하여 C 프로그래밍에서 사용하는 방법?
어떻게 할 수 있습니까? 두 개의 파일이 있습니다. 그것에 1 명에서 10 명의 학생까지 이름과 등급이 있습니다. 처럼 :
John 10 John 5
Alex 6 Alex 9
Mary 8 Mary 6
어떻게 주어진 학생에서 특정 번호를 ACESS 예를 들어 숫자를 추가 할 수 나는 fseek과, SEEK_END를 사용해야 할, 또는 내가 ftell은 사용해야합니까? 그리고 모두의 중앙값을 취하시겠습니까?
코드는 어떻게 작성해야합니까?
EDIT1 : 하나의 파일 (ARQ, aluno이
enter code here
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
char nome[30];
float media;
char situacao;
}informa;
// function to create files \/
int cria_arquivo(){
informa A;
char nome[30];
float n1, n2;
`FILE *arq1, *arq2, *arq3, *arq4; //pointers to archives students, grades,` and anothe file to print on
arq1 = fopen("alunos.txt","r"); // students and grades
arq2 = fopen("notas1.txt","r");
arq3 = fopen("notas2.txt","r");
arq4 = fopen("turma.dat", "wb");
if((arq1 == NULL) || (arq2 == NULL) || (arq3 == NULL) || (arq4 == NULL)){
printf("FATAL ERROR - NAO E POSSIVEL ABRIR ARQUIVOS"); //cant open the files
exit(1);
}
while(1){
//printf("ola");
fscanf(arq1, "%s", nome);
printf("%s\n", nome);
if (feof(arq1)) {
break;
}
//printf("Funciona");
fscanf(arq2, "%f", &n1);
fscanf(arq3, "%f", &n2);
strcpy(A.nome, nome);
A.media = (n1+n2)/2;
printf("%f\n", A.media);
if(A.media < 5){
A.situacao = 'F';
}
else{
A.situacao = 'A';
}
fwrite(&A, sizeof(informa), 1, arq4);
}
fclose(arq1); fclose(arq2); fclose(arq3); fclose(arq4);
return 0;
}
int main(){
cria_arquivo();
return 0;
}
함께 작업하는 파일은 멋지게 구조화 된 텍스트 파일입니다. 'fscanf'에 대해 읽고 그것을 사용하십시오. – DyZ
당신이 무엇을 요구하고 있는지 불분명합니다. 또한 데이터가 어떻게 보이는지는 분명하지 않습니다. 이것은 숙제와 같아 보이지만, 문제에 대해 더 분명히하고, 문제를 해결하기 위해 이미 수행 한 작업을 명확하게해야합니다. –
텍스트 파일의 요소는 일반적으로 가변 폭 *이므로 텍스트 파일의 경우 데이터의 특정 위치를 찾는 것이 불가능합니다. 텍스트 파일의 경우 일반적으로 전체 파일을 읽어야하며 원하는 파일이 발견 될 때까지 각 레코드를 구문 분석해야합니다. –