2013-09-03 6 views
0

C에이 프로그램을 실행 한 후, 나는 + 상관없이이 프로그램은 탭, 새로운 라인과 새로운 공백cmd 텍스트 입력을 종료 할 수 없습니까?

main() 
{ 
    int c, nl, nb, nt; 

    nl = 0; 
    nb = 0; 
    nt = 0; 
    while ((c == getchar()) != EOF){ 
     if (c == '\n') 
     ++nl; 
     if (c == '\t') 
     ++nt; 
     if (c == ' ') 
     ++nb; 
     } 
    printf("%d %d %d\n", nl, nt, nb); 

} 

Ctrl 키를 누른의 수를 계산하는 방법을 몇 번 Ctrl 키 + Z.을 눌러 cmd를 통해 그것을 종료 할 수 없습니다 C는 그곳에서만 나옵니다.

+0

예, 말씀 드렸듯이 탭에서 빠져 나오지 만 탭, 줄 바꿈 등은 어떻게 계산합니까? – user2282137

+2

어떤 운영 체제를 사용하고 있습니까? 'Ctrl + Z '는 모든 시스템에서'EOF'가 아닙니다. UNIX 및 Mac OS X에서는'Ctrl + D '를 시도 할 수 있습니다. – verbose

+0

@verbose Windows – user2282137

답변

2

Ctl+D은 우선은 당신이

Ctl+Z이 중지 할 그 어느 때 우선은 CTL + Z를 눌러야 Windows에서 EOF이다 중지하려면 그 어느 때 CTL + D를 눌러야 UNIX based systemsEOF입니다. 당신이 를 입력 명중 한 필요, 즉 -

while ((c == getchar()) != EOF) ==> while ((c = getchar()) != EOF) 
      ^^        ^ 
+1

Ctrl-d는 유닉스에서 gif가 아닌 EOF입니다. ctrl-z는 DOS/Windows에서 EOF입니다. –

+0

@AhmedMasud 답변에서 수정 된 이것을 가리켜 주셔서 감사합니다. – Gangadhar

0

는 Windows에있어 가정하면, 상황은 기본적으로 + Z 라인의 시작 부분에 Ctrl 키를해야 할 것입니다 ctrl + Z을 입력 한 다음 입력 내용을 읽는 방법에 따라 을 입력하고을 다시 입력하십시오.

F6을 사용하여 입력의 끝을 알릴 수도 있습니다. 대부분의 경우 적어도 이 아니고이 아니고 을 입력하면을 입력해도 작동합니다.

관련 문제