在C ++中将一组整数作为字符串读取

时间:2014-08-23 18:31:04

标签: c++ parsing

我有以下文本文件numbers.txt

4 
5
825
6725
6244865

基本上,我想取第一行中的整数(在本例中为4),作为整数和 将剩余的整数作为字符串,我写了以下代码:

ifstream inFile;
inFile.open("numbers.txt");
int a;
inFile>>a;
string b[a];
for(int i=0; i<a; i++){
inFile>>b[i];
}

但它不起作用。我在这段代码中做错了吗? 我也使用过getline,但这也不起作用。

2 个答案:

答案 0 :(得分:2)

string b[a];

不会飞,你不能像那样分配非const大小的数组。 <或者

string* b = new string[a];

以后

delete[] b;

或制作类似字符串的矢量:

vector <string> b(a);

答案 1 :(得分:1)

int a;
inFile>>a;
string b[a];

这甚至不应该编译。您不能声明具有将在运行时确定的大小的数组。

执行以下操作:

int a = -1;
inFile>>a;
if (a < 1) {
   // HANDLE INVALID DATA HERE!
}

vector<string> b(a);
for(int i=0; i<a; i++){
    inFile>>b[i];
}