2012-07-02 2 views
0

파일에서 가져 오는 정보를 관리하는 프로그램을 만들어야하지만 터보 C 3.0을 사용하고 있습니다. 따라서 파일에 쓰려고하는 중에 오류가 발생합니다. 내 코드 :터보 C로 파일 처리하기

#include <conio.h> 
#include <stdio.h> 

void main(){ 
clrscr(); 

int c; 
FILE *datos; 

datos = fopen("datos.txt","w"); 

c = fgetc (datos); 

printf("%d",c); 

fclose(datos); 

getch(); 
} 

인쇄 할 때마다 -1로 반환됩니다. 나는 이것이 정말로 간단해야한다는 것을 알고 있지만 문제가 있습니다.

+0

왜 "w"(쓰기 모드)로 파일을 열었고 "r"(읽기 모드)로 파일을 열 수 없습니까? – osgx

+0

@osgx 결국 파일에 쓸 것입니다. –

+0

왜 Turbo C 3.0을 사용하고 있습니까? (나는 터보 C를 사용하여 프로그램하는 법을 배웠다. 그러나 그것은 오래 전이었다.) –

답변

0

쓰기 전용 모드 ("w")로 파일을 열었지만 fgetc으로 파일을 읽으려고합니다.

읽기 전용 모드 ("r")로 파일을 연 다음 파일을 닫고 쓰기 전용 모드로 다시 열어 파일을 작성하십시오. 또는 읽기와 쓰기를 모두 지원하는 모드로 파일을 엽니 다. 자세한 정보는 Turbo-C 문서를 확인하십시오.

+0

나는 가질거야. 결국 파일에 쓸 수 있습니다, 나는 또한 그것을 'r'로 변경했습니다. 그러나 여전히 작동하지 않습니다. –

+3

@IsaacGonzalez 쓰기 모드로 파일을 열면 잘린 부분에 데이터가 없습니다. 일부 데이터를 추가하고 다시 시도해야 할 수도 있습니다. – Rohan

1

확인이 유효한 파일이 있는지 확인 :

// use "r" for reading, "w" for writing 
datos = fopen("datos.txt", "r"); 

if (datos) 
{ 
    int ch = fgetc(datos); 
    if (ch != EOF) 
     printf("%d\n", c); 
    else 
     printf("End of file!\n"); 
} 
else 
{ 
    printf("Failed to open datos.txt for reading.\n"); 
} 
0

가 파일을 여는 시도를 대신 "읽기"

이 계속 실패하면
#include <conio.h> 
#include <stdio.h> 
#include <errno.h> 

int main(){ 

    int c; 
    FILE *datos; 

    clrscr(); 
    datos = fopen("datos.txt","r"); 
    if (!datos) { 
    printf ("Open failed, errno=%d\n", errno); 
    return 1; 
    }  
    c = fgetc (datos); 
    printf("%d",c); 
    fclose(datos); 
    getch(); 
    return 0; 
} 

이 우리에게 오류 번호를 알려줍니다.

+0

그것은 실패한 것처럼 보이지 않고, 단지 0을 반환합니다. –

+0

실수로 내 코드에서 뭔가 지워졌습니다. 이제 파일 끝입니다! 출력으로 파일의 내용은 "1234567890"입니다. –

0
'include statements 

main(){ 
    char we; 
    char intt; 
    ifstream q("xyz.txt"); 
    for (we=0;we<100;we++){ 
    q >> intt; 
    printf("%c",q); 
    } 

    getch(); 

}