簡體   English   中英

編譯時讀取文件

[英]Reading file when compiling

我正在研究一個程序,這是我無法理解的。 我有一個帶參數的主函數:

int main(int argc, const char *argv[]){
    FILE *file;
    file=fopen(argv[1], "r");

    if( file == NULL )
    {
      perror("Error while opening the file.\n");
      exit(EXIT_FAILURE);
    }

我如何閱讀argv[1]文件。 當我編譯它時,錯誤顯示為無效參數。 如何打開文件以便打印隱藏的內容? 我正在使用代碼塊。

argv [1]引用用戶在命令行上傳遞的第一個參數。 argv [0]指的是文件本身。 所以在你的情況下,程序將打開作為第一個參數傳遞的文件。

./myprogram myfilename.txt

此外,您對程序本身存在一些問題。

    #include <stdio.h>  /* Library needed for input/output*/    
    #include <stdlib.h> /* needed for the exit calls*/

    int main(int argc, const char *argv[]){
        FILE *file;
        file=fopen(argv[1], "r");

        if( file == NULL )
        {
            perror("Error while opening the file.\n");
            exit(1);
        }

        return 0;
        }

這顯然現在沒什么用,但它會讓argv1打開。 另外,我將exit(EXIT_FAILURE)改為exit(1)。 它們大多是同義詞,但exit(1)不需要編譯器標志(-std = c99)。 EXIT_FAILURE被認為更便攜 - EXIT_FAILURE vs exit(1)? - 但為了簡單起見,我將其更改為退出(1)。

暫無
暫無

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

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