C++ 在c+;中将字符串作为txt文件名读取+;

C++ 在c+;中将字符串作为txt文件名读取+;,c++,file,filestream,C++,File,Filestream,所以我有一个程序可以从命令行读取参数。我的一个参数是文件夹中的文本文件。我试图打开这个txt文件并读取其中的行,但为了这样做,我需要将特定的txt文件放在双引号中,如:“text.txt”。如果文本文件的名称存储在字符串中,有没有办法做到这一点 顺便说一句,打开文件应该如下所示: std::ifstream text ("textfile.txt") 试一试 我不明白如果是字符串,为什么要用引号括起来。代码中的引号将一个字符串分隔开来。在命令行参数中,如果文本参数中有空格,则除其他原因

所以我有一个程序可以从命令行读取参数。我的一个参数是文件夹中的文本文件。我试图打开这个txt文件并读取其中的行,但为了这样做,我需要将特定的txt文件放在双引号中,如:“text.txt”。如果文本文件的名称存储在字符串中,有没有办法做到这一点

顺便说一句,打开文件应该如下所示:

    std::ifstream text ("textfile.txt")
试一试


我不明白如果是字符串,为什么要用引号括起来。代码中的引号将一个字符串分隔开来。在命令行参数中,如果文本参数中有空格,则除其他原因外,还会使用它们。
argv[1]
应该包含要传递给
std::ifstream
构造函数的字符数组。您似乎混淆了命令行解释器对引号空格的要求和参数实际传递给程序的方式。你的问题是什么?“有办法做到这一点吗?”如果你不解释这是什么的话,这是相当模糊的。为什么
#include
?包括cstdlib只是一种习惯。我删除了它,因为它与问题无关
string filename = argv[index];//Where index is the position of the filename argument
std::ifstream text(filename.c_str(), std::ifstream::in);