code

Windows 터미널을 통해 EOF를 보내는 방법

starcafe 2023. 11. 4. 13:12
반응형

Windows 터미널을 통해 EOF를 보내는 방법

K&R 북에서 예제 1.9를 이해하려고 하는데 EOF를 어떻게 보내야 하는지 모르겠어요.일부 정보원은 Ctr+Z를 언급했지만, 이는 단순히 프로그램을 종료하는 것입니다.어떻게든 Enter와 Ctrl+Z, 그리고 Ctrl+V의 조합으로 EOF를 보낼 수 있었지만 재생할 수 없습니다.

#include <stdio.h>
#define MAXLINE 1000

main()
{
    int len;
    int max;
    char line[MAXLINE];
    char save[MAXLINE];

    max = 0;
    while((len = getline_my(line, MAXLINE)) > 0)
    if(len > max) {
        max = len;
        copy(line, save);
    }
    if(max > 0)
        printf("%s", save);
}

getline_my(s, lim)
char s[];
int lim;
{
    int c, i;

    for(i=0; i < lim-1 && (c = getchar()) != EOF && c != '\n'; i++)// As long as the condition is fulfilled
        s[i] = c;
    if (c == '\n') {
        s[i] = c;
        i++;
    }
    s[i] = '\0';
    return(i);
}

copy(s1, s2)
char s1[];
char s2[];
{
    int i;

    i = 0;
    while((s2[i] = s1[i]) != '\0')
        i++;

}

다음을 통해 EOF를 시뮬레이션할 수 있습니다.CTRL+D( *nix의 경우) 또는CTRL+Z그런 다음 명령줄에서 (Windows의 경우)를 입력합니다.

입력을 완료할 준비가 되면 과부에서 를 누릅니다.Enter키를 누른 다음 누릅니다.Ctrl+Z그리고 나서.Enter입력을 완료합니다.

int main(){
    char ch[100];    
    scanf("%[^EOF]",ch);    
    printf("\nthe string is:\n%s\n",ch);    
    fflush(stdin);    
    return 0;    
    }

결국, 유닉스 계열 시스템을 위한 간단한 K&R 코드를 고려할 때 윈도우에서는 쉽게 할 수 없습니다.'^Z^M'(Ctrl-Z 후 Enter)을 보내 EOF에 해당하는 Windows를 보낼 수 있지만 이 C 프로그램에서 확인하는 문자 'EOF'가 다릅니다.

단답: 그럴 수 없습니다.

언급URL : https://stackoverflow.com/questions/16136400/how-to-send-eof-via-windows-terminal

반응형