【发布时间】:2020-05-06 21:29:55
【问题描述】:
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
/*
void square(cLine, height){
}
*/
//void insertVector(vector<char> & cLine, )
int main(int argc, char *argv[]){
if (argc != 5){
cerr << "Incorrect number of arguments" << endl;
return 1;
}
ofstream writeFile(argv[4]);
if (!writeFile.good()){
cerr << "Bad file, could not open" << endl;
return 1;
}
int arrayLength = sizeof(argv[1]);
vector<string> cLine;
string cString(argv[1]);
for(int i=0,i<arrayLength-2,++i){
cLine.push_back(cString.substr(i,i+1));
}
cout << cLine << endl;
}
我正在尝试获取参数 argv[1] 并将其转换为向量,以便以后可以轻松拼接它,我知道该参数是 ac 样式的 char* 数组,但我不知道如何将其转换为一个向量,其中每个索引都是一个字符,但可以打印到控制台。
【问题讨论】:
-
我想你的意思是
strlen而不是sizeof -
std::string有一个构造函数,可以满足您的需求。 -
for(int i=0,i<arrayLength-2,++i){-->for(int i=0; i<arrayLength-2; ++i) { -
" 把它变成一个向量,这样我以后可以很容易地拼接它" 闻起来像 xy problem。你认为你可以用一个你已经拥有的字符串做不到的向量做什么?
-
我很可能像你说的那样陷入了xy问题,作业的主要目标是从参数中制作形状,因此需要拼接。这是我使用 c++ 的第一周,我不知道用什么来完成它。
标签: c++ vector char command-line-arguments