为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过Windows终端发送EOF

如何通过Windows终端发送EOF

C
PIPIONE 2019-12-05 13:16:06
我正在尝试从K&R书中理解Example 1.9,但是我不知道如何发送EOF。一些消息来源提到Ctr + Z,但这只是终止程序。我设法以Enter和Ctrl + Z以及Ctrl + V的组合发送了EOF,但是我无法重现它。#include <stdio.h>#define MAXLINE 1000main(){    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++;}
查看完整描述

3 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

您可以从命令行使用CTRL+D(对于* nix)或CTRL+Z(对于Windows)模拟EOF 。


查看完整回答
反对 回复 2019-12-05
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

最后,鉴于简单的K&R代码(适用于类Unix系统),在Windows上无法轻松完成。您可以发送'^ Z ^ M'(Ctrl-Z然后按Enter)以发送等效于Windows的EOF,但是您要在此C程序中检查的char'EOF'不相同。

简短的答案:您不能。


查看完整回答
反对 回复 2019-12-05
  • 3 回答
  • 0 关注
  • 788 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信