• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

zapis do pliku

42 Warsaw Coding Academy
0 głosów
571 wizyt
pytanie zadane 13 listopada 2022 w C i C++ przez piotr_domanski Bywalec (2,450 p.)
edycja 13 listopada 2022 przez piotr_domanski

Zrobiłem testy, pogram odczytuje i dodaje wartość. Tylko nie chce jej zapisać

NOWY KOD:

fstream licznik_dni_plik;
    licznik_dni_plik.open("system/data/licznik_dni_plik.txt", ios::out);

    licznik_dni_plik << "1";
    licznik_dni_plik.close();
fstream licznik_dni_plik;
            int liczba_dni;
            string liczbadniwyraz;
            licznik_dni_plik.open("system/data/licznik_dni_plik.txt", ios::in);
            getline(licznik_dni_plik, liczbadniwyraz);
            liczba_dni = atoi(liczbadniwyraz.c_str());
            licznik_dni_plik.open("system/data/licznik_dni_plik.txt", ios::out);
            int wynikdni;
            wynikdni = liczba_dni + 1;
            cout << wynikdni;
            Sleep(3000);
            licznik_dni_plik << wynikdni; //// TU JESE PROBLEM, WYNIK ODCZYTUJE I DODAJE ALE NIE CHCE ZAPISAĆ 2 (1+1=2)
            licznik_dni_plik.close();

1 odpowiedź

+2 głosów
odpowiedź 13 listopada 2022 przez j23 Mędrzec (195,240 p.)
    std::string fname = "system/data/licznik_dni_plik.txt";
    int v;

    std::ifstream is(fname);
    if(is.is_open() && is >> v) {
        is.close();
        
        std::ofstream os(fname);
        os << ++v << '\n';
    } else {
        std::ofstream os(fname);
        os << 1 << '\n';
    }

O to chodzi?

komentarz 13 listopada 2022 przez piotr_domanski Bywalec (2,450 p.)
sprawdzę czy działa, ale dzięki
komentarz 13 listopada 2022 przez piotr_domanski Bywalec (2,450 p.)
wiesz co ogólnie to pogram mi sczytuje 1 i dodaje do niej 1 i końcowy wynik wychodzi 2;

I on wypisuje na ekran więc dobrze sczytuje i liczy. Al jest problemem taki że jak mam zapis do pliku :

czyli

int wynik;

po odczytaniu string i zrobieniu atoi( to wszystko działa)

wynik = liczba_dni +1; ///// to daje dwa

ale potem nie chce zapisać tego wyniku do pliku, dlaczego :(

licznik_dni_plik << wynik; //// i tu nie chce zapisać tego, program się kompiluje.
komentarz 13 listopada 2022 przez j23 Mędrzec (195,240 p.)
Czekaj, bo nie rozumiem. To w końcu działa kod, który dałem, czy nie? Jeśli tak, to skup się na tym kodzie.

Jeśli pytasz, dlaczego twój kod nie działa, to zgaduje, że strumień wchodzi w stan błędu, co uniemożliwia wpisanie danych do pliku. Wielokrotnie otwierasz ten sam strumień nie zamykając go uprzednio - pewnie to jest problem.
komentarz 13 listopada 2022 przez piotr_domanski Bywalec (2,450 p.)
o, muszę sprawdzić, twój kod to nie o to o mi chodzi, moim problemem jest to że nie chce zapisać do pliku wyniku. Ale sprawdzę ten problem co mówiłeś

Podobne pytania

0 głosów
0 odpowiedzi 892 wizyt
pytanie zadane 13 stycznia 2022 w C i C++ przez Nikso Nowicjusz (230 p.)
+3 głosów
4 odpowiedzi 2,408 wizyt
pytanie zadane 30 czerwca 2015 w C i C++ przez Phobos Użytkownik (720 p.)
0 głosów
1 odpowiedź 354 wizyt
pytanie zadane 12 listopada 2022 w C i C++ przez piotr_domanski Bywalec (2,450 p.)

93,381 zapytań

142,381 odpowiedzi

322,537 komentarzy

62,738 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...