|
c에서는 문자열의 끝은 \0로 끝나야 합니다.
그러나 아래 코드에선 널종료문자로 끝 표기가 되어 있지 않기 때문에..
문자열의 끝을 알수있는 방법이 없습니다.
운이좋으면.. 제대로 출력되고.. 안그러면.. 에러가 발생합니다.
memset으로 s를 초기화 하거나..
아니면.. while 문 밑에 s[i] = NULL;을 넣어주면 될것 같군요..
abc 님이 쓰신 글 :
: 간단합니다. 문자로 숫자를 받은뒤 실수로 변환합니다.
: #include <stdio.h>
: #include <stdlib.h>
: #define MAX 10
:
: int main(void){
:
: int c,i=0;
: char s[MAX];
:
: while((c=getchar())!='\n') s[i++]=c;
:
: printf("%f\n",atof(s));
:
: return 0;
:
: }
:
: 다른 컴에선 제대로 돌아가는데 집 컴이랑 노트북에선 안돌아가는지..
: 그리고 여기 자료실 TC 2.01을 받아도 똑같이 나오는데..
: 가르쳐 주세요..
:
: 아참! TC 2.0ver는 어디서 구할 수 있나요?
|