2014-09-01 4 views
-1

에서 읽을 때 나는 파일에서 읽을 엑스 코드를 사용하여이 코드를 작성했습니다 :C의 출력 "{"파일

int main (int argc, char *argv[]) 
{  
    FILE *fp = fopen("hello.rtf", "r"); 

    printf("%c\n", fgetc(fp)); 

    fclose(fp); 

    if (fp == NULL) 
    { 
     printf("Could not open file!"); 
     return 1; 
    } 

    // insert code here... 
    return 0; 
} 

내가하고는 최초의 문자가 아닌 "{"입니다 얻을 문자 파일.

+14

'.rtf' 서식있는 텍스트 파일은 그대로 텍스트 파일이 아닙니다. [서식있는 텍스트 형식]의 코드 예제를 참조하십시오. (http://en.wikipedia.org/wiki/Rich_Text_Format) – BLUEPIXY

+0

@BLUEPIXY 파일 확장명을 .txt로 변경했지만 여전히 동일한 출력을 얻었습니다. – Ali

+10

내용의 형식 차이가 파일 확장자에 문제가되지 않습니다. 리치 텍스트 파일을 읽을 수있는 편집기에서 텍스트로 다시 저장해야한다고 생각합니다. – BLUEPIXY

답변

5

RTF 사양에 따르면 RTF 파일의 첫 번째 문자는 {이어야하며 예상되는 결과를 얻고있는 것으로 보입니다. 워드 프로세싱 소프트웨어는 파일의 정확한 문자를 표시하지 않지만 파일의 markup 문자로 설명 된 형식의 텍스트를 표시합니다.

파일의 정확한 문자를 보려면 cat (POSIX) 또는 type (DOS/Windows 명령 프롬프트)으로 출력 할 수 있습니다.

if (fp == NULL) 체크는 fopen 라인 바로 뒤에 있어야합니다. 결국 그것은 너무 늦었습니다.