[英]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.