2017-02-17 1 views
-1
#include <stdio.h> 

int main(){ 
    int c, nl=0; 

    while((c = getchar()) != EOF) 
     if(c=='\n') 
      nl++; 

    printf("%d",nl+1); 
    return 0; 
} 

k & 랜서 섹션 1.5.3 : 줄 카운트 프로그램은 정확하게 복제됩니다. 나는 Mingw64를 사용하고있다. getchar() 비교가 EOF으로 이루어진 경우 콘솔에 출력이 없습니다. 그것은 다른 문자와 잘 작동합니다. CTRL^D를 사용하면 콘솔에서 아무런 결과없이 'code 0'으로 프로그램이 종료됩니다. 나는 bash에서 실행을 시도했지만 출력은 여전히 ​​없다. 아주 오랫동안 이걸 붙들고있어.ctrl^D 이후 콘솔에 출력이 없습니까?

입력 :

일부 침 등 여러 줄

,,, 아마

..

4 개 라인.

예상 출력 :

5

실제 출력 :

(아무것도) 편집-1 : 난 내가 모든 프로그램이 문제가 발견되는 어딘가에서 EOF 비교를 사용하십시오. 이 프로그램은 콘솔에서 실행해야합니까? 아니면 파일에서 입력을 받아야합니까? * nix에서 스크립트 시스템 EOF

+0

코드, 입력 및 출력 및 예상 출력을 표시하십시오. –

+0

지금까지 연구/디버깅 노력을 보여주십시오. 먼저 [Ask] 페이지를 읽으십시오. –

+0

_Questions 디버깅 도움말 ("이 코드가 작동하지 않는 이유는 무엇입니까?")에는 원하는 동작, 특정 문제 또는 오류 및 질문 자체에서이를 재현하는 데 필요한 가장 짧은 코드가 포함되어야합니다. 분명한 문제 설명이없는 질문은 다른 독자에게 유용하지 않습니다. 참고 : 최소한의 완전하고 검증 가능한 예제를 작성하는 방법. –

답변

0

이 프로그램은 파일의 입력을 읽는 것을 목적으로합니다. 이렇게 떠들썩한 파티에 당신은이 작업을 수행 할 경우 : ./linecount < textfile.txt 는 당신에게 출력 5 을 줄 것이다하지만 난/트리거 EOF 문자가 잘 작동하지 않습니다 생성하는 ctrl^D를 사용하여 편집기에서 추측 (적어도 내에서)..

관련 문제