C语言 编译时读取文件



我正在做一个程序,有些东西我不能理解。我有一个带有参数的main函数:

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)?-但为了简单起见,我将其更改为exit(1)。

相关内容

  • 没有找到相关文章

最新更新