문자열, 기호 및 단어를 계산하는 간단한 프로그램입니다.getchar()는 EOF를 전달하지 않고 Ctrl + Z는 Cygwin에서 프로그램을 종료하지 않습니다.
Cygwin을 사용하여 모든 계산이 정상입니다.
그러나 입력 값을 입력 한 후 프로그램은 nc
, nw
, nl
을 인쇄하지 않으며 추가 값 입력을 기다립니다.
EOF
에서 13 (Enter)으로 변경하는 것은 도움이되지 않습니다.
Ctrl 키를 + Z도 유용하다 : 프로그램이 'n은'항상 다른 번호 [n]+ Stopped
를, 쓰기, 정지된다.
코드는
#include <stdio.h>
#define IN 1
#define OUT 0
int main() {
char c;
int state;
int nc, nw, nl;
state = OUT;
while ((c=getchar()) != EOF) {
nc++;
if (c == 'n')
nw++;
if (c == '\n' || c == ' ' || c == '\t')
state = OUT;
else if (state = OUT){
state = IN;
nw++;
}
}
printf ("%d %d %d", nc, nl, nw);
}
무엇이 문제입니까? –
경고 : 사용되지 않는 변수'nl'! –
'int c;' –