在前两天的答疑中,助教发现许多同学都是通过复制粘贴的方式对程序进行输入,且不少同学在如何输入EOF上遇到了问题,本文将和大家介绍一种新的技巧——输入重定向,来更方便的调试程序。
下面将分别以vscode+命令行和Clion为例介绍这一技巧。假设这次作业的要求是统计输入的词数,以EOF为止,我们的代码可以这样写:
#include<iostream>
#include<string>
using namespace std;
int main(){
string s;
int count = 0;
while(cin >> s){
count++;
}
cout << count << endl;
}
编译后,也能在命令行里正常输出。
但每一次都要自己输入测试很麻烦,有什么办法可以让我们更轻松吗?
我们可以先新建一个输入文件,叫input.txt,在里面写上我们想要的输入(注意:文件结束自然会有一个EOF,不需要手动加Ctrl+Z了)
接下来,我们在命令行中按如下方式让这个文件代替我们的输入,不同的shell可能有不同的重定向方式,如果你使用的是windows但不知道自己用的是什么shell,建议都尝试一次或在大群中询问助教。注意空格!
cat input.txt | ./main.exe
main.exe < input.txt
./main < input.txt
这样就方便多了。
有的同学还会觉得打这一条命令很耗时间,可以按方向键【上】回到上一条输入的指令。