[英]How to read a file passed through stdin in C
我想將文本文件傳遞給像這樣的C程序./program < text.txt
。 我在SO上發現像這樣傳遞的參數不會出現在argv[]
,而是出現在stdin
。 如何在stdin中打開文件並閱讀?
您可以直接讀取數據,而無需打開文件。 stdin
已經打開。 如果沒有特殊檢查,您的程序將不知道它是文件還是來自終端或管道的輸入。
您可以使用read
或使用stdio.h
函數通過其文件描述符0
訪問stdin
。 如果函數需要FILE *
,則可以使用全局stdin
。
例:
#include <stdio.h>
#define BUFFERSIZE (100) /* choose whatever size is necessary */
/* This code snippet should be in a function */
char buffer[BUFFERSIZE];
if( fgets(buffer, sizeof(buffer), stdin) != NULL )
{
/* check and process data */
}
else
{
/* handle EOF or error */
}
您也可以使用scanf
讀取和轉換輸入數據。 此函數始終從stdin
讀取(與fscanf
相反)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.