不能将char转换为int?

Tri*_*ian -1 c++ string vector stringstream

我无法将 a 转换char为 an int,我不知道为什么。

我只是想将从 CSV 解析的一些数据转换stringint,编译器不会让我转换。

我收到此错误:

从类型 '__gnu_cxx::__alloc_traits<std::allocator<std::__cxx11::basic_string<char> > >::value_type {aka std::__cxx11::basic_string<char>}' 到类型 'int' 的无效转换

注意我也试过:

static_cast<int>(data[2]);
Run Code Online (Sandbox Code Playgroud)

乃至

'a' - data[2];
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?我觉得我已经做了一百万次了。

time_t startDate;
string ID;
int beds;
int numDays;
string token;
vector<string> data;

for(int i = 0; i < 2; i++){ // run through the rest of the file
    getline(customers, line);
    stringstream s(line); // to parse the csv

    while(getline(s,token, ',')){
        data.push_back(token);
    }

    startDate = changeToInt(data[0]);
    ID = data[1];
    ---> beds = (int)data[2];
    ---> numDays = (int)data[3];
Run Code Online (Sandbox Code Playgroud)

abe*_*nky 5

data是一个vector字符串。

因此data[0]是单string

没有从"Hello World"(a string) 到 an 的明确转换int

错误信息是正确的。

如果您确信该字符串是类似 int 的(例如"1234"),那么我推荐std::stoi().