C++ 有没有更好的方法从命令行读取文件名? #包括 #包括 #包括 使用名称空间std; int main(int argc,char*argv[]){ int*数组; int-pl; 字符串文件名; 如果(argc==2){ filename=argv[1]; } fstream f(文件名,ios::in | ios::out); f>>pl; 数组=新整数[pl]; 对于(int i=0;i>array[i]; cout

C++ 有没有更好的方法从命令行读取文件名? #包括 #包括 #包括 使用名称空间std; int main(int argc,char*argv[]){ int*数组; int-pl; 字符串文件名; 如果(argc==2){ filename=argv[1]; } fstream f(文件名,ios::in | ios::out); f>>pl; 数组=新整数[pl]; 对于(int i=0;i>array[i]; cout,c++,C++,您的解决方案非常好,是实现您的目标最快的方法。其他任何东西,包括类,只需要更多的努力/键入就可以做到这一点,没有任何优势。我只想添加一个最小的错误处理: #include <iostream> #include <string> using namespace std; int main(int argc ,char *argv[]){ if (argc!=2) { cerr << "please provide a fi

您的解决方案非常好,是实现您的目标最快的方法。其他任何东西,包括类,只需要更多的努力/键入就可以做到这一点,没有任何优势。我只想添加一个最小的错误处理:

#include <iostream>
#include <string>

using namespace std;

int main(int argc ,char *argv[]){
    if (argc!=2) {
        cerr << "please provide a filename as argument." << endl;
        return 1;
    }
    string const filename(argv[1]);

    // etc...
    // etc...
    // etc...

    return 0;
}
#包括
#包括
使用名称空间std;
int main(int argc,char*argv[]){
如果(argc!=2){

CICR你能更具体一些吗?提示:在C++中避免<代码>新[][/COD]并使用<代码> STD::向量< /代码>。更好地以什么方式?我不知道你怎么能“不那么好”,因为它们比使用<代码>新[] /代码>要简单得多,并且需要大约五分钟才能理解。
emplace\u back()
但是emplace只有在处理结构或复杂对象时才真正重要。它们的工作原理与C数组基本相同,但也允许使用
for(auto&&x:y)轻松迭代
这太好了。有一些库可以帮助解析命令行参数。快速的谷歌搜索可以提供: