C++; Problem with saving and reading from txt file

  c++, file, txt

I have a problem with the code that i am working on. I dont know what i am doing wrong, tried a lot of things and i cannot spot it. Code is below. Thanks for help in advice. The code’s aim is to either read or save into the txt file few float values diveded into the named by users parts.

#include<iostream>
#include<fstream>
#include<conio.h>
#include<windows.h>
using namespace std;
int main()  {
    fstream pomiary;
    char a;
    string n_sekt, lin, sekt[50];
    float n_pom[7], pom[50][7];
    int ite;
    for(;;) {
        cout<<"1. sprawdz pomiaryn2. dopisz pomiaryn3. wyjdzn";
        a=getch();
        switch(a)   {
        case '1':   {
            ite=0;
            pomiary.open("C:/Users/jacek/Desktop/C++/pracc24/pomiary.txt",ios::in);
            if(pomiary.good()==false)   {
                cerr<<"Plik, nie istnieje, najpierw dopisz do niego pomiaryn";
                break;
            }
            while(!pomiary.eof())   {
                getline(pomiary,lin);
                switch(ite) {
                case 0: sekt[ite]=lin;  break;
                case 1: {
                    for(int i=0;i<=6;i++)   {
                        getline(pomiary,lin);
                        pom[ite][i]=atof(lin.c_str());
                        ite++;
                    }
                    ite=0;
                }
                }
                ite++;
            }
            for(int i=0;i<=ite;i++) {
                cout<<sekt[i]<<endl;
                for(int i1=0;i1<=6;i1++)   cout<<pom[i][i1]<<endl;;
            }
            pomiary.close();
            break;
        }
        case '2':   {
            pomiary.open("C:/Users/jacek/Desktop/C++/pracc24/pomiary.txt",ios::out|ios::app);
            for(;;) {
                cout<<"Podaj nazwe sektoru (napisz wyjdz, aby wyjsc): ";
                cin>>n_sekt;
                if(n_sekt=="wyjdz")   break;
                pomiary<<n_sekt<<endl;
                for(int i2=0;i2<=6;i2++)   {
                    cout<<"Podaj "<<i2+1<<". wymiar: ";
                    if(!(cin>>n_pom[i2]))  {
                        cerr<<"Nieprawidlowe dane wejsciowe(pomiar musi byc liczba). Trzeba usunac dane z pliku!!!";
                        Sleep(5000);
                        pomiary.close();
                        return 0;
                    }
                    pomiary<<n_pom[i2]<<endl;
                }
            }
            pomiary.close();
            break;
        }
        case '3':   exit(0);
        default:    cout<<"Nieprawidlowy wyborn";
        }
    }
}

Source: Windows Questions C++

LEAVE A COMMENT