我想在c ++中使用字符串,但我不能。当我创建字符串时,我总是得到一条错误消息。我想解决这个问题所以如果有可能我不想使用。 (我不知道,我应该如何使用矩阵字符串)
以下是我的代码的一小部分:
#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
string fajlnev="tancrend.txt";
ifstream fajl(fajlnev.c_str());
int i=0;
int db=0;
string atmeneti;
while (!fajl.eof())
{
getline(fajl,atmeneti);
getline(fajl,atmeneti);
getline(fajl,atmeneti);
db++;
}
db--;
string tanc[db][3];
fajl.close();
ifstream fajl2(fajlnev.c_str());
for(i=0;i<db;i++)
{
fajl2>>tanc [i][0];
fajl2>>tanc [i][1];
fajl2>>tanc [i][2];
}
答案 0 :(得分:0)
string tanc[db][3];
是非法的C ++。用作数组大小的所有值都应该是编译时常量(因此您应该能够在执行程序之前知道确切的值)。
有些编译器允许使用可变长度数组作为语言扩展,但这些数组通常是有限的(通常它们允许C允许但不多于此)。
在您的情况下,最好使用C ++可变长度容器:std::vector
std::vector<std::array<std::string, 3>> tanc(db);