簡體   English   中英

從終端行讀取文本文件?

[英]Reading text file from terminal line?

因此,我知道要讀取和打印一行文本,您只需使用printfscanf並將其鍵入即可。 但是,如果我想打印一個文本文件而不在終端中鍵入它們怎么辦? 我並不是說要使用fopen(filename, "r")在這里只能打開一個特定的文件。 我認為這稱為重定向,但是我在理解它時遇到了麻煩。 如下面的輸入示例所示:

./myprogram < input.txt

這是重定向備忘單 我們感興趣的行是:

cmd < file :將cmd < file的內容重定向到cmd < file的標准輸入(stdin)。

這是一個簡單的示例,將打印input.txt文件的內容。 與手動輸入相比,該程序將永遠不會等待,並且將循環運行直到到達文件的末尾( 注意:在某些情況下,該末尾沒有結束,您可能想要添加替代的中斷條件 )。

#include <stdio.h>

int main(void)
{
    char    buffer[100];

    while (fgets(buffer, 100, stdin))
        printf("%s", buffer);
    return (0);
}
  • ./myprogram < input.txt將打印您的input.txt
  • ./myprogram將等待您的手動輸入並打印您剛剛輸入的內容。

這與您要求的不完全相同,但是您可以將文件名作為參數放入argv [1]中,然后使用fopen

暫無
暫無

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

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