[英]Redirect C output to a txt file
我将程序 output 重定向到一个 txt 文件并输入主 function 提示的值:
我希望我的 output.txt 文件具有以下数据:
Enter float1: 2.4
Enter float1: 4.6
但相反,它有这个:
Enter float1:
Enter float1:
这是我的主要 function:
printf("Enter float1: ");
scanf("%f", &float1);
printf("Enter float2: ");
scanf("%f", &float2);
任何人都可以帮助重定向输入的值吗? 我研究了这个问题,但找不到任何可以解决问题的方法。 我尝试重定向 stderr 以查看是否在那里打印了值,但它给了我一个空文件。
您使用scanf()
获得了这两个值,但您没有打印它们(例如使用printf()
),因此它们不会出现在stdout
中。
当我们用键盘在标准输入上输入一些东西时,我们可以看到文本只是因为终端(不是你的程序)回显了这些字符。 因此,重定向程序的标准 output 不会改变任何东西。
用户输入是stdin
,但您仅将stdout
重定向到文件。 因此,您将在output.txt
中看到您的程序仅打印到stdout
的内容。 如果要打印输入的值,则必须在scanf
之后打印它们。
在下面的示例中,您还应该在output.txt
中看到输入值
printf("Enter float1: ");
scanf("%f", &float1);
printf("%f\n", float1);
将您的主要更改为:
printf("Enter float1: ");
scanf("%f", &float1);
printf("%f\n", float1);
printf("Enter float2: ");
scanf("%f", &float2);
printf("%f\n", float2);
附带说明一下,如果您对重定向感到困惑, printf
是fprintf
的修改版本。 打印到控制台是如此普遍,有一个 function 。 说printf("%f\n", float1)
与fprintf(stdout, "%f\n", float1)
。 scanf
与fscanf
也是如此。 重定向 output 允许您将printf
语句保留在代码中,但仍会打印到文件中。 否则,您将手动将它们全部更改为fprintf
,这会很痛苦。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.