C Primer Plus 8.4 Windows下的重定位

void EOFF(){
    char ch;
    while((ch = getchar()) != EOF){
        putchar(ch);
    }
}



int main(){
    // 主程序块
    EOFF();

    return 0;
}

在书中写道关于重定位的知识。重要的一点,在windows下,必须使用CMD窗口才能正常运行。

为何提到这一点是因为,在powershell中无法正常使用,并且VScode的终端也是基于power shell的。如下图。

在CMD应先定位到对应目录(附上快捷定位的方法,直接在资源管理器的地址栏输入cmd回车即可)

打开编译后的exe文件,并添加后缀使用“<”就可以了。

储存文本的文件,后缀不重要,就算文件名单单只有"nihao"也是可以正常读取的。这里只关心文件是否储存了“我们可以识别的字符”,可以理解成人可以阅读的字符。


重定向输出

 依旧使用cmd运行。在使用了">"后,可以随意输入你喜欢的文字。甚至是中文字符。

系统会自动创建一个"nihao2"文件。文本内容不做演示了,按道理来说就是你写的内容。

在这里比较关键的是:到底是哪里的数据传到了nihao2中呢?

在这里实际上是putchar()这个函数(实际上是宏)的输出传送到了nihao2中,而他本应直接传送到屏幕并显示出来。

做个实验,注释掉putchar(),再进行同样的操作,会发生什么呢?

 再次运行

 依旧可以创建nihao3文件(毕竟这是属于系统命令,和程序无太大关系)

但是打开nihao3之后,并没有发现任何的内容,需要格外注意一点的是。在你注释掉了那一行之后,记得重新编译一下,要不然结果当然还是和之前一样啦。并且你还有可能需要重新打开cmd窗口,要不然也有可能依旧还是一开始的结果。

这一段知识点比较有意思,大家读到这里应该对于输入输出的理解会更加深刻。并且这里的知识点对于自己制作一个文本编辑器小程序是非常重要的。


内容比较初级,甚至琐碎。只为留下足迹,以便后来的同学们可以更加方便的找到这样细枝末节问题的答案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值