Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zapisywanie zmiennych w pliku .txt

Ostatnio zmodyfikowano 2016-01-17 12:09
Autor Wiadomość
Fistach
Temat założony przez niniejszego użytkownika
Zapisywanie zmiennych w pliku .txt
» 2016-01-16 12:52:09
C/C++
#include<iostream>
#include<fstream>

using namespace std;

int main()
{
   
    string nazwa;
    int licznik = 1;
    int a;
    int aa;
    int ab;
    int b;
    int c;
    int ca;
    int d;
    int e;
    cout << "Podaj nazwe zastepu  ";
    cin >> nazwa;
    cout << "1. Obecnosc na zbiorkach   ";
    cin >> a;
    cout << "1.1 za mundur   ";
    cin >> aa;
    cout << "1.2 Proporzec na zbiorce +1p  ";
    cin >> ab;
    cout << "2. Stopnie " << endl << "Druch 15pk" << endl << "mlodzik 25pk" << endl << "wywiadowca 30pk" << endl << "cwik 35pk" << endl << "HO 100pk  " << endl;
    cin >> b;
    cout << "3. Obecnosc na wyjazdach  ";
    cin >> c;
    cout << "3.1 Proporzec na wyjazdach  ";
    cin >> ca;
    cout << "4. Obecnosc na mszy harcerskiej  ";
    cin >> b;
    cout << "5. Pochwala/Nagana  ";
   
   
   
    char * zastep = "Zastep ";
   
    char * obecnosc = "1.Obecnosc na zbiorkach ";
   
    char * zamundur = "1.1 Za mundur ";
   
    char * proporzeczb = "1.2 Proporzec na zbiorce ";
   
    char * stopnie = "2. Stopnie ";
    char * obecnoscwyj = "3. Obecnosc na wyjazdach ";
    char * proporzecw = "3.1 Proporzec na wyjazdach ";
    char * obecnoscm = "4. Obecnosc na mszy harcerskiej ";
    char * pona = "5. Pochwala/Nagana ";
   
   
   
   
    ofstream zapis( "dane.txt" ); //obiekt tworzymy tylko raz
    zapis << zastep << nazwa << endl;
    zapis.close(); //obowiązkowo należy zamknąć plik
   
    delete * zastep;
   
    zapis.open( "dane.txt", ios_base::app );
    zapis << obecnosc << a << " pk " << endl;
    zapis.close();
   
    delete * obecnosc;
   
    zapis.open( "dane.txt", ios_base::app );
    zapis << zamundur << aa << " pk" << endl;
    zapis.close();
   
    delete * zamundur;
   
    zapis.open( "dane.txt", ios_base::app );
    zapis << proporzeczb << ab << " pk" << endl;
    zapis.close();
   
    delete * proporzeczb;
   
    zapis.open( "dane.txt", ios_base::app );
    zapis << stopnie << b << " pk" << endl;
    zapis.close();
   
    delete * stopnie;
   
    zapis.open( "dane.txt", ios_base::app );
    zapis << obecnoscwyj << c << " pk" << endl;
    zapis.close()
   
    delete * obecnoscwyj;
   
    zapis.open( "dane.txt", ios_base::app );
    zapis << proporzecw << ca << " pk" << endl;
    zapis.close()
   
    delete * proporzecw;
   
    zapis.open( "dane.txt", ios_base::app );
    zapis << obecnoscm << d << " pk" << endl;
    zapis.close()
   
    delete * obecnoscm;
   
    zapis.open( "dane.txt", ios_base::app );
    zapis << pona << e << " pk" << endl;
    zapis.close()
   
    delete * pona;
   
    return 0;
}




to jest część kodu która mi nie działa jak mniej zapisze to działa   jak zrobić by zapisywało więcej?
Proszę o pomoc.
P-143579
mateczek
» 2016-01-16 13:51:56
trochę dziwny kod
C/C++
#include <iostream>
#include<string>
#include<fstream>
using namespace std;

int main()
{
    fstream plik;
    plik.open( "d:/test.txt", ios_base::app );
    if( !plik.good() ) {
        cout << "error" << endl;
        return 0;
    }
   
    string napis;
    int liczba;
   
   
    while( 1 ) {
        cout << "Podaj nazwe zastepu\n0=koniec wpisywania" << endl;
        getline( cin, napis );
        if( napis == "0" ) break; // jeśli nazwa zatępu będzie 0 to kończymy wprowadzanie danych
       
        plik << "nazwa zatepu= " << napis << endl;
       
        cout << "1. Obecnosc na zbiorkach   " << endl;
        cin >> liczba;
        plik << "Obecnosc na zbiorkach = " << liczba << endl;
       
        cout << "1.1 za mundur   ";
        cin >> liczba;
        plik << "Za mundur = " << liczba << endl;
        cin.clear();
        cin.sync();
    }
    plik.close();
   
}
delete się używa gdy dynamicznie alokujesz pamięć!!! (jest "new" ma być "delete")
P-143580
Fistach
Temat założony przez niniejszego użytkownika
» 2016-01-16 15:36:32
dałem delete bo nie wiem co zrobić aby zapisał dane wszystkie w pliku bo zapisuje mi tylko

 pare takie bloki kodu

C/C++
zapis.open( "dane.txt", ios_base::app );
zapis << obecnosc << a << " pk " << endl;
zapis.close();



zapis.open( "dane.txt", ios_base::app );
zapis << zamundur << aa << " pk" << endl;
zapis.close();


zapis.open( "dane.txt", ios_base::app );
zapis << proporzeczb << ab << " pk" << endl;
zapis.close();

Ma zapisywac iformaje wplku txt

Prosze  pomoc
P-143587
mateczek
» 2016-01-17 11:51:41
http://cpp0x.pl/kursy/Kurs-C++​/Obsluga-plikow/305
1. plik otwierasz raz a nie co chwila !!!
1.1 sprawdź poprawność otwacja pliku!!!
C/C++
fstream plik;
plik.open( "d:/test.txt", ios_base::app );
if( !plik.good() ) {
    cout << "error" << endl;
    return 0;
}
2. sprawdzaj poprawność wczytanych danych z klawiatury
2.1. Czyść strumień "cin" albo gdy fail() albo profilaktycznie !!!
P-143625
mateczek
» 2016-01-17 12:09:34
masz tu kod programu !!!
I zanim zaczniesz marudzić skopiuj wklej i uruchom!!!
wprowadź kilka zastępów i zobacz plik wyjściowy !!!

C/C++
#include <iostream>
#include<string>
#include<fstream>
#include<vector>
using namespace std;

int main()
{
    fstream plik;
    plik.open( "d:/test.txt", ios_base::app );
    if( !plik.good() ) {
        cout << "error" << endl;
        return 0;
    }
   
    string napis;
    vector < string > daneDoPliku;
   
   
    while( 1 ) {
        daneDoPliku.clear();
        cin.clear();
        cin.sync();
       
        cout << "Podaj nazwe zastepu\n0=koniec wpisywania" << endl;
        getline( cin, napis );
        if( napis == "0" ) break; // jeśli nazwa zatępu będzie 0 to kończymy wprowadzanie danych
       
        if( cin.fail() ) { cout << "cin Error" << endl; continue; }
        daneDoPliku.push_back( "nazwa zastepu: " + napis );
       
        cout << "1. Obecnosc na zbiorkach   " << endl;
        getline( cin, napis );
        if( cin.fail() ) { cout << "cin Error" << endl; continue; }
        daneDoPliku.push_back( "obecnosc na zbiurkach%: " + napis );
       
        cout << "1.1 za mundur   ";
        getline( cin, napis );
        if( cin.fail() ) { cout << "cin Error" << endl; continue; }
        daneDoPliku.push_back( "za mundur zaplacono: " + napis );
       
        //rekord gotowy dane bez błędu zapisuje
        for( string s: daneDoPliku ) {
            plik << s << endl;
        }
        plik << "--------------------------------------------------" << endl;
    }
    plik.close();
   
}
P-143626
« 1 »
  Strona 1 z 1