使用argv读取文本文件

Using argv to read a text file

本文关键字:文件 取文本 读取 argv 使用      更新时间:2023-10-16

我正在尝试使用argv[1]读取一个文本文件。在我的代码中,构建后argc保持为1,这意味着没有检测到该文件。请参阅下面的代码:

#include <iostream>
#include <string.h>
#include <fstream>
using namespace std;
 int main(int argc, char **argv) {
    char msg[256]={0};
    if (argc < 2){
        cout<<"file not found";
    }
    if(argc > 1){
        strcpy(msg,argv[1]);
    }
     FILE *file;
     if ((file = fopen(argv[1], "r")) == NULL)
         {
             printf("file doesnt existn");
         }
     fclose(file);
    cout<<argv[1];
}

我不知道如何获得大于1的argc值,然后读取文件的内容?

argc保持为1,仅表示未检测到文件

如果argc为1,则表示没有向程序提供(命令行)参数。我建议您更改响应消息以反映这一点。

如何获得大于1 的argc值

您需要将一个参数传递给程序。在命令行上,你可以这样做:

> ./program_file_name value_of_first_argument

如果从IDE启动程序,请查阅IDE手册,了解如何设置启动的命令行参数。


请注意,如果程序中的参数长度超过256个字符,则缓冲区溢出,行为未定义。

是否尝试将文件拖放到应用程序中?这应该会给你argv[1],如果拖放不起作用(它本应该起作用),那么就会出问题

或者尝试使用FULL PATH,您实际上不需要复制argv[1],只需直接使用它。。。