【发布时间】:2020-02-20 09:52:31
【问题描述】:
在我的项目中,我需要上传一个文件并检查其中的每一行是否有一个整数(正数或负数),以便它可以在向量中表示。
由于我正在研究 QT 和 C++,所以我考虑了两个建议,但是当我在文件中插入一个数字时,例如“35.2”和一个逗号,然后我按下开始按钮,程序就会崩溃。
有没有更好的解决方案来缓解这个问题?我附上了我正在评估的解决方案之一。
QFile file_in(file_name);
file_in.open(QIODevice::ReadOnly | QIODevice::Text);
QTextStream in(&file_in);
int elem;
int pos = 0;
QString s;
QIntValidator valid(-999, 999, this);
while(!in.atEnd())
{
in >> elem;
s = QString::number(elem);
if(!valid.validate(s,pos))
{
v.clear();
QMessageBox msg(this);
msg.setText("Input non valido");
msg.exec();
return;
}
else
{
v.push_back(elem);
}
}
【问题讨论】:
-
我觉得你可以试试regex
-
在检查之前您已经分配给 int。问题也需要更多澄清。你能把你想接受的东西列为
int吗?您的文件结构如何?示例文件会很好。 -
感谢您的回答。该文件是这样的:-2 24 4 71 .... on for each line
-
" 程序崩溃了。" : 它在哪里崩溃了?