使用textFiles进行C ++编程

时间:2018-01-20 17:52:29

标签: c++ text-files return-type

我目前正在开发一个将字符串存储在文本文件中的程序。 正如您在代码中看到的那样,我在if条件结尾处输入了一个return语句。但是当我第二次执行它时,文本文件没有记录下我想要存储和打印的任何数据,它只显示空白区域。它是这样工作的吗?我做错了什么?

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main(){
    string s,s1,s2,s3,s4,s5,d;
    ofstream k("t1.txt");
    int a;

    cout<<"Vendosni nje numer 1/2 ";
    cin>>a;

    if(a==1){
        while(k.is_open()){
            cin.ignore();
            cout<<"Vendosni nje pyetje: ";
            getline(cin,s);
            cout<<"Vendosni alternativen 1: ";
            getline(cin,s1);
            cout<<"Vendosni alternativen 2: ";
            getline(cin,s2);
            cout<<"Vendosni alternativen 3: ";
            getline(cin,s3);
            cout<<"Vendosni alternativen 4: ";
            getline(cin,s4);
            cout<<"Vendosni pergjigjen: ";
            getline(cin,s5);


            k<<s<<endl;
            k<<s1<<endl;
            k<<s2<<endl;
            k<<s3<<endl;
            k<<s4<<endl;

            k.close();

            return main();
        }
    } else {
        ifstream r("t1.txt");
        while( r.is_open() ) {
            for( int i=0; i<5; i++ ) {
                getline(r, d);
                cout<<d<<endl;
            }

            r.close();
        }
        string s6;
        cin>>s6;

        if(s6==s5){
            cout<<"True";
        }
    }
}

1 个答案:

答案 0 :(得分:-1)

打开文件时,必须定义文件模式 - 读取模式或写入模式或两者。下面给出了带文件模式的编辑代码

    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;

    int main()
    {
        string s,s1,s2,s3,s4,s5,d;
        ofstream k("t1.txt", ofstream::app);
        int a;
        cout<<"Vendosni nje numer 1/2 ";
        cin>>a;
        if(a==1)
        {

            while(k.is_open())
            {
                cin.ignore();
                cout<<"Vendosni nje pyetje: ";
                getline(cin,s);
                cout<<"Vendosni alternativen 1: ";
                getline(cin,s1);
                cout<<"Vendosni alternativen 2: ";
                getline(cin,s2);
                cout<<"Vendosni alternativen 3: ";
                getline(cin,s3);
                cout<<"Vendosni alternativen 4: ";
                getline(cin,s4);
                cout<<"Vendosni pergjigjen: ";
                getline(cin,s5);


                k<<s<<endl;
                k<<s1<<endl;
                k<<s2<<endl;
                k<<s3<<endl;
                k<<s4<<endl;
                k<<s5<<endl;
                k.close();
                return main();


            }
        }
        else
        {

            ifstream r("t1.txt",ofstream::in);
            while(r.is_open())
            {
                for(int i=0; i<5; i++)
                {
                    getline(r,d);
                    cout<<d<<endl;
                }
                getline(r,d);
                r.close();

            }
            string s6;
            cin>>s6;


            if(s6==d)
            {
                cout<<"True";
            }
        }
    }