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

时间:2014-03-25 19:22:08

标签: c++ qt5

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

我制作了一个程序来检查用户是否输入了一个有效的名称“首先检查qvector”如果找到它然后它说它被找到了,问题是因为qvector有点大我制作了一个txt文件把这些名字一行一行地放在那里:

NAME1 NAME2 NAME3 。 。 。

我使用此函数使用qfile

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

q_names是QString的qvector

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

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

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并启用它

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

我猜这是因为新线?

1 个答案:

答案 0 :(得分:1)

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

如果您使用QTextStream来读取QFile documentation中显示的文件,则会自动修剪任何换行符(如果在窗口中,则返回回车符)。