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

Zapisywanie do pliku na obiektówce

0 głosów
1,893 wizyt
pytanie zadane 24 marca 2016 w C i C++ przez niezalogowany

Witam, mam problem, otóż chciałem zapisywać do pliku czas, wszystko się kompiluje ale program i tak nie reaguje (tzn. absolutnie nic nie zmienia w txt, sam timer działa). Dodam, że jak zmienię adres przy czas.open to i tak nie tworzy się żaden plik

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
string zp; // pomocniczy string do konwertowania czasu z pliku
fstream czas;
int godzin,minut,sekund ;
czas.open("czas.txt", ios::in);
czas.open("czas.txt", ios::out);

AnsiString godz,min,sek;
if (czas.good()==true){
getline(czas, zp);
s=atoi(zp.c_str());
}
     s++;
     godzin = s/3600 ;
     godz = IntToStr(godzin);
     if (godzin<10) godz= "0"+godz;

     minut = (s- godzin*3600)/60;
     min = IntToStr(minut) ;
     if (minut<10) min= "0"+min;

     sekund = s-godzin*3600-minut*60;
     sek = IntToStr(sekund);
     if (sekund<10) sek= "0"+sek;
  czas<<s<<endl;
      Label1 ->Caption = godz +":"+min+":"+sek;
      czas.close();

}

trochę kombinowałem więc zapewne idzie znaleźć tutaj wiele niepotrzebnych udziwnień (droga na około itp...) jednak jeśli ktoś się orientuje w sprawie to bym był wdzięczny za wskazanie rozwiązania problemu+

+ drugie pytanie, do jednoczesnego zapisu i odczytu pliku mogę to jakoś połączyć w jednej komendzie czas.open("adres", ios::in, ios::out)? Bo właśnie gdy tak robię to wywala błąd 

2 odpowiedzi

0 głosów
odpowiedź 24 marca 2016 przez niezalogowany
wybrane 24 marca 2016
 
Najlepsza
czas.open("czas.txt", ios::in);

czas.open("czas.txt", ios::out);

zamień na

czas.open("czas.txt", ios::in | ios::out);

to pierwsze co mi się rzuciło w oczy
komentarz 24 marca 2016 przez niezalogowany
zaraz sprawdzę i Ci napiszę
komentarz 24 marca 2016 przez niezalogowany
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    //zawartość pliku to napis o treści telefon
    fstream plik;
    plik.open("stary.txt", ios::in);
    if(plik.is_open())
    {
        string linia;
        getline(plik,linia);
        cout<<linia;
    }
}

nawet nie wiesz jak się namęczyłem z tym. szok, taka godzina że kołyszę się na krześle, by Ci pomóc hehe. w ten sposób pobierzesz tylko 1 linię

komentarz 24 marca 2016 przez niezalogowany
Dzięki wielkie! ;)
komentarz 24 marca 2016 przez niezalogowany
Spox, jak coś to pisz
komentarz 24 marca 2016 przez niezalogowany
no oki, a jak chcę tego stringa przerzucić na inta to komendą atoi, co nie? tylko, że jak tak zrobię to program niby się kompiluje ale nie wykonuje kodu, staje na komendzie atoi i nic dalej nie robi (nie crashuje się)
0 głosów
odpowiedź 24 marca 2016 przez szymi666 Bywalec (2,020 p.)
Ja tu nie widzę żadnego błędu aczkolwiek ja używam metody że np.

ofstream czas1;

ifstream czas2;

możesz ostatecznie jej spróbować,
komentarz 24 marca 2016 przez szymi666 Bywalec (2,020 p.)
czas2.open("czas.txt");

czas1.open("czas.txt");

Tak by to wyglądało.

Podobne pytania

0 głosów
2 odpowiedzi 700 wizyt
pytanie zadane 11 lutego 2019 w Nasze projekty przez MiśKoala Nowicjusz (120 p.)
0 głosów
1 odpowiedź 252 wizyt
0 głosów
1 odpowiedź 374 wizyt
pytanie zadane 14 stycznia 2018 w Inne języki przez albert3233 Nowicjusz (170 p.)

93,720 zapytań

142,648 odpowiedzi

323,266 komentarzy

63,270 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...