簡體   English   中英

將 C output 重定向到 txt 文件

[英]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);

附帶說明一下,如果您對重定向感到困惑, printffprintf的修改版本。 打印到控制台是如此普遍,有一個 function 。 printf("%f\n", float1)fprintf(stdout, "%f\n", float1) scanffscanf也是如此。 重定向 output 允許您將printf語句保留在代碼中,但仍會打印到文件中。 否則,您將手動將它們全部更改為fprintf ,這會很痛苦。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM