2013-02-16 2 views
2

duom.txt 파일에서 텍스트를 읽고 모든 문자를 배열에 저장하려고합니다. 그러나 나는 옳은 대답을 얻지 못합니다. 내 코드에 어떤 문제가 있습니까?텍스트 파일에서 텍스트를 읽고 모든 문자를 배열에 저장하는 방법

# include <stdio.h> 
# include <stdlib.h> 
int main() 
{ 
FILE *in; 
char ch,str[100],cw; 
int j,i = 0; 

in=fopen("duom.txt","r"); 


if(in){ 
    while(!feof(in)){ 
    ch=getc(in); 
    str[i] = ch; 
    i++; 
} 
} 

for(j=0;j<i;j++){ 
      printf("%c",str[i]); 
} 
printf("\n"); 
    fclose(in); 


    system("pause"); 
return 0; 
} 

duom.txt 파일 : chint 그래서 유형 int을해야

My name is Lukas 
+3

을 편집하고 시도하는 것이이됩니다 귀하의 질문에 대답하지만 귀하의 코드 포맷은 역겨운입니다. 적절한 들여 쓰기와 구문 '미화'를 시도하고 연습하면 잠재적으로 혼란스러워하지 않게됩니다. – tsujp

답변

1
  1. 는 fgetc()는 반환합니다.

  2. feof()가 인지 여부는 파일 끝을 읽었는지 여부를 알려줍니다. 즉, while 루프는 원하는 것보다 한 번 더 실행됩니다.

1

당신은 인쇄 루프에서 j 대신 i 넣어해야합니다

for(j=0;j<i;j++){ 
     printf("%c",str[i]); // <-- here, it must be `str[j]` 
} 

을 당신이에 allways 의미있는 변수 이름을 사용해야하는 이유 그!

1

프로그램에 약간의 오타가 있습니다.

for(j=0;j<i;j++){ 
    printf("%c",str[j]); //str[j] instead of str[i] 
0

코드의 작은 실수는

for(j=0;j<i;j++){ 
     printf("%c",str[i]); // <-- here, it must be `str[j]` 
} 

이 프로그램 의 diaster에서 변수 결과의 변화는 그래서이 아닌 내가 아는

관련 문제