2013-07-04 5 views
-1

.txt 파일을 읽으려고합니다. 나는 올바른 경로를 제공 한 경우에도 다음과 같은 오류가 점점 오전 :파일 - 올바른 경로를 제공하는 대신 오류가 발생합니다.

Error1: File is undeclared first time use in function 

Error2: file is undeclated first time use in function 

\U 그것을 이스케이프 시퀀스로하고있다. 나를 안내 해줘. FILE *file을해야

#include <stdio.h> 
#include <stdlib.h> 
int main(int argc, char *argv[]) 
{ 
    File *file = fopen("C:\Users\Admin\Desktop\files.txt", "r"); 
    char c; 
    do 
    { 
     c = fgetc(file); 
     printf("%c",c); 
    } 
    while (c != EOF)  
    fclose(file); 
    system("PAUSE"); 
    return 0; 
} 
+1

작동이 약간의 작업이 그것을 제대로 포맷해야합니다. 적절히 형식화 된 코드는 독자를 존경하는 질문입니다. – alk

+0

"파일이 선언되지 않았습니다"라는 오류 메시지를 생성하는 컴파일러를 사용하는 것에 대해서는 조심해야합니다. 오류 메시지를 표시하려면 잘라 내기 및 붙여 넣기를 사용하십시오. 맞습니까? –

답변

1

당신은 "C:\\Users\\Admin\\Desktop\\files.txt"

4

File *file를 작성하는 모든 백 슬래시를 이스케이프해야합니다.

fopen("C:\Users\Admin\Desktop\files.txt", "r");

는해야 fopen("C:\\Users\\Admin\\Desktop\\files.txt", "r");

4

이 :

  1. FILE 유형은 모두 대문자로, 그 같은 철자 :

    File *file = fopen("C:\Users\Admin\Desktop\files.txt", "r"); 
    

    두 개의 오류가 있습니다. C는 대소 문자를 구분합니다.

  2. 문자열의 백 슬래시는 제어 문자를 이스케이프하는 데 사용되며 리터럴 백 슬래시를 원하면 두 배가되어야합니다.

그래서, 그것은해야한다 :

FILE *file = fopen("C:\\Users\\Admin\\Desktop\\files.txt", "r"); 
3
  • 변경 FileFILE에.
  • 변경 while (c != EOF);while; 추가 세미콜론
  • while(!feof(file));합니다. 더블 백 슬래시로
  • 변경 단일 백 슬래시 \\\

당신의 코드는 이제 다음과 같습니다

FILE *file = fopen("C:\\Users\\Admin\\Desktop\\files.txt", "r"); 
char c; 
do 
{ 
     c = fgetc(file); 
     printf("%c",c); 
} 
while(!feof(file)); 
fclose(file); 

system("PAUSE"); 
return 0; 

이 코드를 테스트하고 같은 몇 가지 코드에 대해 완벽하게 :)

관련 문제