2009-11-30 3 views
0

안녕하세요, 텍스트 파일 내에서 텍스트를 다차원 문자 배열로 복사하는 방법은 무엇입니까? (text_file.txt) 텍스트 파일을 상정C의 텍스트 파일에서 문자 배열로 텍스트를 복사 하시겠습니까?

이 문제는이 세 번째 라인

#include <stdio.h> 
int main(void){ 
FILE *f; 
f=fopen("text_file.txt","r"); 
if (f==NULL){ 
    printf("invalid!"); 
    return 1; 
    } 
else { 
    printf("successful"); 
    } 

char copied_text[80][80]; 

while (!feof(f)){ 
    int i=0,j=0; 
    fgets(copied_text[i][j],"%s",f); 
    i++; 
    } 

return 0; 
} 
인 제 2 선

첫 번째 행

이다

포함

- 감사합니다.

답변

1

나는 코드가 거의 작동한다고 생각합니다.
int i의 선언을 루프 밖으로 이동하십시오.
포인터가 필요하기 때문에 fgets의 첫 번째 매개 변수를 copied_text [i]로 변경하십시오.
fgets의 두 번째 매개 변수를 80으로 변경하십시오. 이는 정수 여야하므로 허용되는 문자열 길이를 나타냅니다.

#include <stdio.h> 
int main(void){ 
    FILE *f; 
    f=fopen("text_file.txt","r"); 
    if (f==NULL){ 
     printf("invalid!\n"); 
     return 1; 
    } 
    else { 
     printf("successful\n"); 
    } 

    char copied_text[80][80]; 

    int i=0; 
    while (!feof(f)){ 
     fgets(copied_text[i],80,f); 
     ++i; 
    } 

    for(int i = 0; i <3; ++i) 
     printf("%s\n", copied_text[i]); 
    return 0; 
} 
+2

'while (! feof (...)) '은 거의 항상 잘못된 것이며,이 경우도 예외는 아닙니다. 이것을'while (fgets (...)! = NULL)'로 변경해야합니다. – caf

+0

80 줄을 넘지 않는 수표가 있어야합니다. –

+0

너희들 말이 맞아. 엔지니어링 관점에서 샘플 코드를 향상시키는 데는 여전히 많은 부분이 있습니다. 방금 기본 아이디어를 표현하기 위해 원래 코드를 수정하려고했습니다. – Raymond

관련 문제