2017-12-14 18 views
2

변수 응답을 인쇄 할 때 몇 가지 이상한 문자가 포함되어 있습니다. 그 이유는 무엇일까요?fgetc를 사용하여 파일에서 읽는 동안 이상한 문자가 출력됩니다.

int flag=0; 
char answer[512]; 
char a[2]; 
a[1]='\0'; 

int c; 
int status=1; 
do { 
     c = fgetc(pp); 
     if(feof(pp)) { 
     break ; 
     } 
     if(c=='F' || status==0){ 
       a[0]=(char)c; 
       strcat(answer,a); 
       status=0; 
     } 
    } while(TRUE); 
+1

파일에 이상한 문자가 포함 된 것일 수도 있습니다. –

+1

'answer [0] = 0'을 설정하십시오. – MFisherKDX

답변

2

strcat은 대상 문자열이 유효 할 것으로 예상합니다. 즉, null로 끝나야합니다. answer 문자열을 명시 적으로 Null 종료하지 않았습니다. 루프 앞에 answer[0]=0을 추가하십시오.

+0

@chux. 나는 OP가'a [1] = 0'을 맞았다 고 생각합니다. 그러나'answer [0] = 0'을 놓쳤습니다. – MFisherKDX

+0

예, 주석이 삭제되었습니다. – chux

+0

@MFisherKDX에게 감사의 말을 전합니다. 따라서 빈 문자열조차도 0으로 끝나야합니까? – Tosh