在字符串数组中添加单词

时间:2016-01-02 22:09:13

标签: c++ arrays words

我正在尝试读取具有单独列的文件,并在数组中包含列的每个单词。其中一些是数字,其他文字。对于文字,我总是得到类型转换的错误。任何的想法? 以下是代码:

#include <iostream>
#include <fstream>
#include <cmath>

int main ()
{
    string line; 
    int a=100;
    ifstream data;
    data.open("filename.txt");
    getline(data,line);

    int number[a];
    const char *at[3][a];
    const char *rt[3][a];
    int rn[a];

    for (int j=0;j<a;j++)
    {
        number[j] = stoi(line.substr(6,6));
        at[j] = line.substr(13,2);
        rt[j] = line.substr(13,2);
        rn[j] = stoi(line.substr(22,4));
        getline(pdb,line);
    } 
    return 0;
}

我感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

std::string不是char const*。使用数组项类型std::string而不是const char*。您需要包含<string>标头。还包括<vector>,并使用std::vector而不是那些原始数组。请注意,声明int number[a]非标准,它使用g ++语言扩展(即C99可变长度数组)。因此,使用std::vector也可以获得更多可移植代码。

,而不是

int number[a];    // Non-standard

vector<int> number( a );

有更多细节可以提及,但目前还不清楚这里的设计是什么,以及由于误解造成的。因此,如果在转换到std::stringstd::vector后仍然存在问题,我建议您提出一个新问题,而不是修改此问题。