2016-11-21 1 views
0

저는 C 언어를 처음 사용하고있어서 .csv 파일에 데이터를 저장하고 아주 간단한 프로그램에서 동일한 데이터를 읽으려고합니다. 출력이 잘못된 이유C wierd 출력에서 ​​CSV 파일 쓰기 및 읽기

char c; 

    FILE *fp; 
    fp = fopen("file.csv", "w+"); 
    fprintf(fp, "Hello;World\nLine"); 
    fclose(fp); 
    fp = fopen("file.csv", "r"); 
    while (getc(fp) != EOF) { 
     printf("%c", getc(fp)); 
    } 

    fclose(fp); 

나도 몰라 : 사전에

el;ol 
ie 

감사

당신은 루프 상태에서 문자를 읽고있는 (그래서 다른 모든 일을 출력하기 때문에
+1

'getc (fp)! = EOF' : 입력 문자를 버립니다. – BLUEPIXY

답변

5

인쇄 할 때 다른 하나를 읽음). 이 시도 : 여기

int ch; 
while ((ch=getc(fp)) != EOF) { 
    printf("%c", ch); 
} 
+0

오 물론! –

+0

EOF와 비교하려면,'char ch; 대신'int ch;'를 사용하십시오. – BLUEPIXY

3

: 당신은 루프를 통해 두 번 할 때마다 getc()를 호출하지만, 단 하나 개의 문자를 인쇄하는

while (getc(fp) != EOF) { 
    printf("%c", getc(fp)); 
} 

. 그래서 당신은 절반의 시간을 얻으실 수 있습니다.