将一组整数读取为C++中的字符串
Reading a set of integers as a string in C++
我有以下文本文件编号.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,但这也不起作用。
string b[a];
不会飞,你不能像那样分配非常量大小的数组。要么做
string* b = new string[a];
及以后
delete[] b;
或者制作类似字符串向量的东西:
vector <string> b(a);
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];
}