gpt4 book ai didi

c++ - 如何将命令行参数转换为 vector ,而每个字符都具有不同的值?

转载 作者:行者123 更新时间:2023-12-02 10:37:05 27 4
gpt4 key购买 nike

#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]设置为 vector ,以便以后可以方便地对其进行拼接,我知道该参数是ac样式char *数组,但我不知道如何将其转换为 vector ,每个索引都是一个字符,但可以打印到控制台。

最佳答案

这个宣言

int arrayLength = sizeof(argv[1]);

这没有任何意义,因为 sizeof(argv[1])sizeof( char * )等效,并且不产生参数中的字符数。

这个说法
cout << cLine << endl;

也没有意义,因为模板类 operator <<没有重载的 std::vector

而且这个for循环
for(int i=0,i<arrayLength-2,++i){

在语法上是不正确的。

您需要的是以下内容
#include <cstring>

//…

std::vector<char> cLine( argv[1], argv[1] + std::strlen( argv[1] ) );
for ( const auto &c : cLine ) std::cout << c;
std::cout << '\n';

关于c++ - 如何将命令行参数转换为 vector ,而每个字符都具有不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59830625/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com