【发布时间】:2020-09-05 02:29:46
【问题描述】:
这是我的 C 程序
int main(){
int n;
while(1){
printf("Enter n:\n");
scanf("%d",&n);
switch(n){
case 1: int t;
scanf("%d",&t);
if(t<10)
printf("true");
else printf("false");
break;
case 2: char c;
scanf("%c",c);
if(c=='a') printf("true");
else printf("false");
break;
case -1: break;
}
if (n==-1) break;
}
return 0;
}
这是我的 bash shell 脚本
./a.out << 'EOF'
1
4
2
b
-1
EOF
这将执行代码但不保存输出
./a.out > outputfile
上面的代码会保存输出,包括“Enter n”。
我想执行代码并只保存真/假部分(即排除所有其他 printf)。如何存储文件的输出并为其提供输入?
【问题讨论】:
-
如果你知道输入,避免不必要的 printf,你可以达到你想要的。
-
@SudoPehpeh :您的程序写入标准输出,因此
outputfile将包含所有printf结果。如果您不想在标准输出中包含所有内容,请将不需要的部分写入标准错误,即fprintf( stderr, "everything you do not want to capture") -
@AbhijitNathwani 通常该文件应该由用户运行,因此需要打印语句来告诉用户输入什么。 shell 脚本代码只是检查给定的输入,代码是否给出了正确的输入。