Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[510] Re:누가 좀 갈쳐주세염...ㅠㅠ
조준회 [] 1886 읽음    2002-04-24 11:21

몇가지 내용을 알고 있지 못하기 때문에 이해를 하지 못하는
것입니다.

while ((c = getchar()) != EOF)의 의미는
EOF가 입력될때까지 cnt = punc_count();문장을 반복해서 수행한다는 뜻입니다.

이 코드를 보면.. 우선 입력을 기다리고..(getchar)
입력이 되면.. EOF인지 비교해서.. EOF가 아니면..
아래문장을 수행하고..
다시 첨부터 반복합니다.

이해하셨죠?.

또다른 문제는

: #include <stdio.h>
: int punc_count(int c)
: {
:     static int num = 0;
:     if (c == '.' || c == '!' || c == '?')
:         num++;
:     return num;
: }

: int main(void)
: {
:     int c, cnt;
:     while ((c = getchar()) != EOF)
:         cnt = punc_count();
:     printf("Total No. of punctuations = %d\n", cnt);
: }

처럼 하거나..

함수 프로토 타입을 이용해서..
아래 처럼 해주어야 합니다.

: #include <stdio.h>
: int punc_count(int c); // 이곳을 주목..

: int main(void)
: {
:     int c, cnt;
:     while ((c = getchar()) != EOF)
:         cnt = punc_count();
:     printf("Total No. of punctuations = %d\n", cnt);
: }
: int punc_count(int c)
: {
:     static int num = 0;
:     if (c == '.' || c == '!' || c == '?')
:         num++;
:     return num;
: }


컴파일러가 컴파일을 하던중.. punc_count(); 만나게되면..
이것이 무엇인지 알수가 없기 때문입니다.
따라서 함수 자체를 punc_count를 호출하는 부분보다 먼저 코딩을
해놓거나.. 아니면 함수 프로토타입을 사용해서..

이러한 함수라는 것을 컴파일러에 알려주어야 합니다.
(이건 compiler시간에 1pass compiler, 2 pass compiler 등의 특성을
배울때 자세히 알게될겁니다. 그러나 미리 이정도는 알고 있어야합니다.)

보통 함수 프로토타입을 사용하는 방법을 씁니다.

마지막으로 cnt = punc_count(); 에서.. 파라미터가 빠져있습니다.
함수의 정의는 int punc_count(int c);로 파라미터를 받도록 만들어놓고..
호출시에는 파라미터를 넘겨주지 않으니 문제가 발생하지요..

이 내용을 이해하고 다시 수정하여 보기시 바랍니다.

그리고 자료형, 변수통용범위(스코프 법칙), 함수에 대해서 이해를 하고 있지
못하고 계신 상태니.. 이부분을 다시 공부하시 바랍니다.


: #include <stdio.h>
: int punc_count(int c);

: int main(void)
: {
:     int c, cnt;
:     while ((c = getchar()) != EOF)
:         cnt = punc_count();
:     printf("Total No. of punctuations = %d\n", cnt);
: }
: int punc_count(int c)
: {
:     static int num = 0;
:     if (c == '.' || c == '!' || c == '?')
:         num++;
:     return num;
: }


두근두근 님이 쓰신 글 :
: 초보가 지금 머리 아파 죽겠습니다...좀 갈쳐 주세염..
:
: #include <stdio.h>
: int main(void)
: {
:     int c, cnt;
:     while ((c = getchar()) != EOF)
:         cnt = punc_count();
:     printf("Total No. of punctuations = %d\n", cnt);
: }
: int punc_count(int c)
: {
:     static int num = 0;
:     if (c == '.' || c == '!' || c == '?')
:         num++;
:     return num;
: }
:
: 책을 보다가 예제가 이케 나와서 했는데 warning 이라고 하네여
:
: 아무리 뚤어지게 보고 있어도 몰겠구여..그리고 while문에여
:
: while((c = getchar()) != EOF) <- 이건 무슨 말인가염..;;
:
: 좀 갈쳐주세염...

+ -

관련 글 리스트
509 누가 좀 갈쳐주세염...ㅠㅠ 두근두근 1856 2002/04/24
510     Re:누가 좀 갈쳐주세염...ㅠㅠ 조준회 1886 2002/04/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.