使用argv读取文本文件
Using argv to read a text file
我正在尝试使用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],只需直接使用它。。。
相关文章:
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?
- C++程序不返回文件中文本和字符串数据的值
- 提升配置文件的文本文件接收器设置
- 随机访问文件格式,用于分层组织的二进制文件和文本文件
- 是否可以使头文件使文本居中?- 在控制台中
- 如何为包含其他 protobuf 的 protobuf 文件编写文本
- 使用strtok_s显示来自文本文件的文本
- 根据某些输入文件预测文本生成'random'下一个字符
- 从二进制文件中抓取文本时,为什么 xdg_vtnr=8 是我的结果
- 我怎么知道我是在读二进制文件还是文本文件
- 如何在wxWidgets的同一窗口中拖放文件和文本
- 二进制文件到文本文件,文本文件到二进制文件
- 无法从文件打印文本
- 设置新文件默认文本
- C++显示文本文件...("Echo"文本文件)
- 从Windows应用程序的文本框中抓取文本
- 音频文件到文本使用SAPI或同等功能的SR
- 对于大文件,文本文件中的大多数常用词从未完成
- 通过套接字发送文件和文本
- 从文件读取文本到无符号字符数组