2013-07-01 12 views
0

누구나 ftell에서 내가 잘못하고있는 것을 말해 줄 수 있습니까?ftell이 -1을 반환하고 프로그램이 충돌 함

저는 C에서 엉망입니다. 다음 코드는 -1이라는 터미널 메시지를 보내고 https://publib.boulder.ibm.com/infocenter/zos/v1r13/index.jsp?topic=%2Fcom.ibm.zos.r13.bpxbd00%2Fftell.htm에 따른 오류를 의미하며 프로그램이 충돌 함을 발견했습니다.

내가 뭘 잘못하고 있니? 그것은 포인터와 관련이 있습니까?

감사

#include <stdio.h> 
#include <string.h> 

int main() 
{ 
    FILE * f; 
    char * s = "Hey Buddy!"; 
    f = fopen("myFile.txt", "w"); 

    int count = strlen(s); 

    for (int i = 0; i < count; i++) 
    { 
     printf("%d\n", ftell(i)); 
     fputc(s[i], f); 
    } 

    fclose(f); 
    return 0; 
} 

또한이 이송 얼마나 멀리 배열 따라 단말로 인쇄 중에 프로그램 (A 내지 F 당시에 한 문자 인쇄) 위에 'S'반복 할 예정이다. 0 = H 1 = E, Y = 2, 등

ftellFILE 객체에 대한 포인터를 기대하고 있기 때문에, ftell하지 i의 인수로 f 전달해야

답변

4

.

+0

+1. 또한'fopen'이 NULL이 아닌 파일 핸들을 반환했는지 확인하는 것이 좋습니다. – simonc

+0

나는 그것이 어리석은 뭔가가 될 줄 알았어. 고맙습니다 ~ 대단히 :) @simonc 그것은 내 자신의 장치를 위해 주위에 prating, 그래서 너무 많이 중요하지 않을거야,하지만 그럼에도 불구하고 머리를 주셔서 감사합니다 :) – Ollie