C 当程序多次请求输入时,使用文件作为程序输入
我有一个程序,要求用户输入两次。我想用文件为程序提供输入,但无法理解。由于它要求输入两次,我无法将文件通过管道传输到程序,因此我正在尝试:C 当程序多次请求输入时,使用文件作为程序输入,c,input,C,Input,我有一个程序,要求用户输入两次。我想用文件为程序提供输入,但无法理解。由于它要求输入两次,我无法将文件通过管道传输到程序,因此我正在尝试: ./prog <in1 <in2 输入文件中只有几个字符。救命啊 如果文件in1中没有\n,则strchr将找不到任何内容,并将返回NULL 接下来,您的代码将尝试取消引用NULL,并导致seg故障。 这可能是你麻烦的根源 为了防止出现\n不存在的情况,我建议使用以下代码: char* p = strchr(buf, '\n'); if (p
./prog <in1 <in2
输入文件中只有几个字符。救命啊 如果文件
in1
中没有\n
,则strchr
将找不到任何内容,并将返回NULL
接下来,您的代码将尝试取消引用NULL
,并导致seg故障。这可能是你麻烦的根源 为了防止出现
\n
不存在的情况,我建议使用以下代码:
char* p = strchr(buf, '\n');
if (p != NULL) {
*p = '\0';
}
puts(buf);
至于从多个文件定向输入,如果您在*nix系统上,请尝试以下操作:
./prog < `cat in1 in2`
/prog<`cat in1 in2`
它如何要求用户输入?你在那里做的管道只是重定向stdin,如果你指定其中两个,我实际上不知道会发生什么:S
./prog < `cat in1 in2`