我正在尝试读取具有单独列的文件,并在数组中包含列的每个单词。其中一些是数字,其他文字。对于文字,我总是得到类型转换的错误。任何的想法? 以下是代码:
#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;
}
我感谢任何帮助!
答案 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::string
和std::vector
后仍然存在问题,我建议您提出一个新问题,而不是修改此问题。