c++ - 在 Qvector 中读取文件后存储数据

标签 c++ qt5

我有一个奇怪的问题不知道为什么:

我制作了一个程序来检查用户是否输入了有效名称“首先检查 qvector”如果找到它然后它说它已找到,问题是因为 qvector 有点大我制作了一个 txt 文件并且像这样逐行将名称放在那里:

名字1 名字2 名字3 . . . .

我用这个函数是用qfile逐行读取的

for (int i=0; !names->atEnd(); i++){
    q_names[i]=names->readLine();
    }

q_names 是 QString 的一个 qvector

我使用 qline edit 来检查它是否被复制,它是!! “例如,我使用 settext(q_names[3]) 展示了它,它就像一个魅力。

现在当我试图让用户输入一个字符串并检查它是否在 vector 中时,我使用了这个:

for(int i=0; i<50; i++){
    if(lineedit_names->text()==S_names[i]){
..}

但是没用

以上只是一个示例,希望它能解决问题,这里有一些图片可以让您了解我在说什么:

http://tinypic.com/view.php?pic=2wd7iph&s=8

http://oi61.tinypic.com/2wd7iph.jpg

当它发现它“匹配”时,它会将那里的行编辑设置为 true 并启用它

奇怪的是,当我输入文本文件中的最后一个值时,它启用它就像没有问题一样“这意味着它找到了那个值”

我猜是因为换行了?

最佳答案

如果您直接通过 QFile 读取,那么您正在使用 QIODevice::readLinedocumentation因为那表明它保留了换行符。在这种情况下,它们将包含在比较中,您需要将它们删除才能进行所需的比较。

如果您改为使用 QTextStream 来读取文件,如 QFile documentation 中所示然后任何换行符(如果在 Windows 上,还有回车符)字符将被自动修剪。

关于c++ - 在 Qvector 中读取文件后存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22644356/

相关文章:

C++/SFML 定位 Sprite 问题

c++ - thrust::max_element() 为 2D 矩阵返回不正确的值

qt - QML如何根据条件创建不同的类型

c++ - Qt: c++: 如何使用 QStringList 填充 QComboBox

c++ - 如何将 Q_GLOBAL_STATIC 与插件一起使用?

css - 每个 QTableWidgetItem 的 QTableWidget 样式

c++ - 使用 push_back 将 vector<double> 放入 vector<vector<double>>

c++ - 简单但准确的 C/C++ 代码基准测试

c++ - 是否可以在 C++ 中创建一个占用少于一个字节内存的类型?

c++ - Qt:如何将parent设置为其子类的成员变量?