sample.txt
の中身が
apple=150
orange=300
grape=200
のときにsample.txtを読み込んで(全読み込み)"\n"で1行ずつsplitした後に、"="でsplitしてパラメータ名が正しければcorrectを表示したいのですが、下記コードだと、grapeがある場合でもgrapeがない場合でもelse if(key != "grape")に引っかかってしまいます。
grapeがある場合、else if(key != "grape")に引っかからないようにするにはどのように修正すべきなのでしょうか。
grapeがない場合やgrapeの綴りが間違っている(例glape)時だけelse if(key != "grape")の処理に入りたいです。
#include "MainWindow.h" #include <QApplication> #include <QDebug> #include <QFile> #include <QTextCodec> int main(int argc, char *argv[]) { //QApplication a(argc, argv); //MainWindow w; //w.show(); QFile file("C:\Users\Desktop\sample.txt"); if (!file.open(QIODevice::ReadOnly)) { qDebug() << "can not open file." ; return 0; } QString str; QTextStream in(&file); str = in.readAll(); qDebug() << str ; QStringList list1 = str.split("\n"); for (int i=0; i < list1.count(); i++) { QString txt = list1[i]; QStringList list2 = txt.split("="); QString key = list2[0]; QString value = list2[1]; if(key == "apple"){ qDebug() << "correct"; } if(key == "grape"){ qDebug() << "correct"; } else if (key != "grape"){ qDebug() << "incorrect"; //break; } if(key == "orange"){ qDebug() << "correct"; } } file.close(); //return a.exec(); }
回答2件
あなたの回答
tips
プレビュー