在这一点上,我几乎是一个 C++ 新手。我对 Java 比较有经验,所以我真的不习惯 C++ 的语法规范。
话虽如此,我正在尝试制作一个小型应用程序,它将读取 .txt 文件(逐行),并且根据每行有多少个逗号,它将各自的参数发送到临时 t1 或 t2 变量, 为 Type1 的 t1 和 Type2 的 t2。
Type1 和 Type2 是 Maintype 的子类,随后从这个“Maintype”继承一个“description”字符串。Type1 和 Type2 都有各自的参数(setName、setSize 等)的 set() 方法,但我无法让这个东西工作。这是我到目前为止的进展,为了便于理解,我对其进行了评论:
void Test::readFile(string f)
{
int c = 0;
int com = 0;
fstream file;
file.open(f);
string line;
stringstream ss(line);
if (!file)
cout << "File not found!" << endl;
while (!file.eof())
{
c = 0;
getline(file, line, '\n');
if (line.size() > 0)
{
com = count(line.begin(), line.end(), ','); // Count commas
Type1 t1(); // Temporary t1
Type2 t2(); // Temporary t2
String description;
std::string token;
while (std::getline(ss, token, ','))
{ // Might change this while later if necessary
if (c == 0)
{ // First parameter is description
description = token;
c++;
}
else if (com > 1)
{ // If more than one comma
t1.setDesc(description);
t1.setName(token);
// Next token
t1.setSize( /*convert token string to int*/ );
// ---End reading string
// ---Send t1 to a list of Maintypes
}
else
{ // Local natural
t2.setDesc(description);
t2.setTime( /*convert token string to int*/ );
// ---End reading string
// ---Sent t2 to a list of Maintypes
}
}
}
file.close();
}
}
我很确定我没有正确执行 setDesc 等,它说'表达式必须具有类类型'。现在我知道这不是 Java,但我真的不习惯。另外,关于方法本身,我是否以正确的方式实现文件读取解决方案?
非常感谢!