함수 getchar()에 대한 간단한 질문..
글쓴이: Chance78 / 작성시간: 화, 2003/07/01 - 6:50오후
이제 방학이라 C를 좀 공부해볼려고 하는데 처음부터 막히네요..
간단하게 문자열을 입력받아서 문자중에 '\t' (tab)가 있으면 그 공간만큰
공백을 출력하는 프로그램인데 이상하게 게속 문자열을 입력 받습니다.
어디가 문제인지 답변 좀~ *^^*
#include <stdio.h> #define MAX_STRING 255 void main() { char string[MAX_STRING]; int i = 0; for(i = 0; (string[i] = getchar()) != EOF; i++); for(i = 0; string[i] != EOF; i++) { if(string[i] == '\t') { printf(" "); continue; } putchar(string[i]); } }
Forums:
getchar() 맨페이지를 보세요.리턴값이 int형입니다.이와관
getchar() 맨페이지를 보세요.
리턴값이 int형입니다.
이와관련된 글은 아래 URL을 참고하세요.
http://bbs.kldp.org/viewtopic.php?t=20263
[quote] for(i = 0; (string[i] = getc
이 부분은 계속 입력 받으라는 말입니다. EOF 를 입력할때까지..string이라는 변수에 하나씩 넣겠군요.
---
http://coolengineer.com
참고적으로 EOF 를 입력하려면(?)유닉스에서는 Cntl-D 이고요,
참고적으로 EOF 를 입력하려면(?)
유닉스에서는 Cntl-D 이고요,
ms-windows 에서는 Cntl-Z 입니다.
내 자식들도 나처럼 !!
char로는 EOF를 처리할 수 없는 경우도 있습니다. (unsigned
char로는 EOF를 처리할 수 없는 경우도 있습니다. (unsigned char)
getchar()의 결과는 int로 받으시고, EOF가 아닐 경우에 배열에 저장하세요.
....
위에 코드를 쓸 필요없이,gets() 함수나 fgets()함수를 이용한다면
굳이 탭 처리를 할필요없겠네요 ...
댓글 달기