2013-08-06 2 views
0

텍스트 파일을 뒤집을 코드를 작성하고 있습니다. 예 : abc가 cba가되어야합니다이 동작에 대한 설명이 있으십니까?

나는 코드를 잘 작성했으며 작동합니다. 하지만이 독특한 행동을 발견했습니다. 입력으로 반전 출력을 다시 제공하면 반전 된 입력 파일의 마지막 문자는 건너 뜁니다. 어떻게 처음에는 정상적으로 작동하고 다음에 문자는 건너 뛸까요? EOF 문자의 일종을 잃었 추측

int main(){ 
    int fin, fout; 
    char c[1]; 
    fin = open("input.txt",O_RDONLY); 
    fout = open("reverse_input.txt",O_WRONLY|O_TRUNC); 
    lseek(fin, -2, SEEK_END); 
    do{ 
     read(fin, c, 1); 
     write(fout,c,1); 
    }while(lseek(fin, -2, SEEK_CUR) >=0); 
    close(fin); 
    close(fout);  
    return 0; 
} 

암 ... 당신은 마지막 문자가 FOUT하기로 핀에서 마지막 문자를 작성해야

+0

결과를 복제하려면 reverse_input.txt 파일의 이름을 input.txt로 바꾸고 빈 파일 reverse_input.txt를 만드십시오. – kBisla

답변

1

:

여기에 코드입니다.

+0

그렇게해야합니다. 그것이 올바른 가치인지 확인하십시오. 파일을 찾기 직전에 바로 찾아서 저장하고 나중에 작성하십시오. – Jiminion

+1

WORKS !! 고맙습니다. – kBisla

+0

쿨! 그것이 다행했기 때문에. – Jiminion

관련 문제