2014-04-11 2 views
0

죄송합니다. 전에 이와 비슷한 작업을 수행 했으므로이 작업을 복잡하게 끝내야 겠지만 누군가 내가 틀린 것을 이해하도록 도와 줄 수 있습니까? 나는 이전에 자바에 대해서만 알고 있었지만 C에 익숙해졌습니다.파일을 읽을 수 없습니다 - C

나는 온라인 검색에서 3 가지 방법을 시도했지만, 사용하지 않는 것은 주석 처리하지 않았습니다. 그것은 data.txt에서 숫자의 올바른 금액을 밖으로 인쇄하지만 그것은 단지 숫자 1을 출력합니다. 나는 c = scanf가 잠시 동안 내게 다른 결과를 줄 것이라고 생각했습니다.

나는 어떤 수학도하고 있지 않기 때문에 문자로 숫자를 읽으려고했지만, 나는 많은 펑키 기호를 가지고있다.

입력 :

data.txt로 < ./a.out data.txt로 내용량 : 0 2 2 0 6 1 0 7 4 1 7 5 0 8 2 0 8 9 1 15 13

파일 C 함량 #INCLUDE 사용법 #include "queue.h"

int main(void) 
{ 
    /* 
    char c = scanf("%c", &c); 
    while (c!= EOF) 
    { 
     printf("%c", c); 
     c = scanf("%c", &c); 
    }//while 
    */ 



    int c = scanf("%d", &c); 
    while (c!= EOF) 
    { 
     printf("%d", c); 
     c = scanf("%d", &c); 
    }//while 
    printf("\n"); 



    /* 
     char c; 
    //char **argv 
    FILE *infile; 
    infile=fopen(argv,"r"); 
    while (!feof(infile)) 
    { 
     fscanf(infile, "%c", &c); 
     printf("%c", c); 
    } // while 
    fclose(infile); 
    */ 
return 0; 

답변

1

scanf의 결과를 확인하려면 다른 값을 사용해야합니다. 이제 읽음 값을 scanf 결과로 덮어 씁니다.

또한 EOF를 확인하는 것보다 성공 여부를 확인하는 것이 좋습니다. 입력 한 텍스트가 무한 루프로 들어가는 것처럼 말입니다.

int x = scanf("%d", &c); 
while (x == 1) 
{ 
    printf("%d", c); 
    x = scanf("%d", &c); 
} 

은 분명히이 응축 될 수

while (1 == scanf("%d", &c)) 
    printf("%d", c); 
관련 문제