먼저 다른 주제가 내 문제와 관련된 경우 미안하지만 적절한 문구에 도달 할 수 없습니다.C - fgets 및 모든 줄을 배열에 저장
나는 최대한 명확하게하려고 노력할 것입니다.
약 10 개의 텍스트 파일을 배열에 저장 한 다음 데이터를 처리해야하는 과정 프로젝트를 실현했습니다.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int* argc, char* argv[]){
char* c = "./example.txt";
char s[500];
char* lignes[100];
int sizeLignes = 0;
printf("%s \n\n", c);
FILE* myFile = NULL;
myFile = fopen(c, "r");
if (myFile != NULL){
int n;
while (fgets(s, 500, myFile) != NULL){
printf("%d \n\n", sizeLignes);
lignes[sizeLignes] = s;
printf("%s", lignes[sizeLignes]);
sizeLignes++;
}
printf("%s", lignes[1]);
printf("%s", lignes[2]);
printf("%s", lignes[3]);
}else{
printf("Wrong file");
}
fclose(myFile);
return 0;
}
내의 var에 :
나는 모든 라인을 얻을 수는 fgets를 사용, 그들은 내가 숯불 $ []
코드에들에게 "문자열을"통과 (치료는 문제가되지 않습니다) 좋은데, 모든 루프를 인쇄하면 좋다. 그리고 루프 안에 lignes[sizeLignes]
을 인쇄하면 너무 좋습니다. 외부에 값을 인쇄하려고하면 넣습니다 ... 마지막 단어 4 개를 유지하는 것과 같습니다.
아이디어가 있으십니까?
추가 정보가 필요하십니까? 미리
감사
Izio
문자열을 배열에 복사해야합니다. 당신은 단지's'에 대한 포인터를 배열에 저장하고 있으며 다음 루프 반복에서's'를 덮어 쓰게됩니다. – pstrjds