无法从文件

时间:2016-09-12 15:36:19

标签: c++ file fstream

我试图创建一个C ++程序,在程序文本中查找特定行,然后读取该文件的下一行。但该程序最终显示三次相同的行。这可能是一个可能的解决方案?这是我的代码 -

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
    ifstream file("file.txt");
    string line;
    int iffound=0;
    string inp;

    cin>>inp;
    cout << "You have searched for " << inp << endl;

    while (file.good())
    {
        getline(file,line);
        if(line==inp){
            iffound=1;
            cout << "Contact Found!" << endl;
            for(int i=0;i<=2;i++){
                cout << line;
            }
            break;
        }
    }
    file.close();

    if(iffound!=1){
        cout << "Contact Not Found" << endl;
    }
    return 0;
}

这是我的文本文件(file.txt)

123456
User1
Available
Active

789456
User2
Not Available
Active

2 个答案:

答案 0 :(得分:1)

如果你发现了你的情况,你不会用getline阅读以下两行。基本上,您错过了getline

中的for

答案 1 :(得分:1)

你的内循环没有更多的阅读,它只打印3次:

                 for(int i=0;i<=2;i++){
                    cout << line;
                 }

如果您希望代码继续读取更多行,您还需要将读数放在该循环中:

                 for(int i=0;i<=2;i++){
                    getline(file,line);
                    cout << line;
                 }