• 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

Object Storage Arubacloud
0 głosów
706 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 405 wizyt
pytanie zadane 11 lutego 2019 w Nasze projekty przez MiśKoala Nowicjusz (120 p.)
0 głosów
1 odpowiedź 155 wizyt
0 głosów
1 odpowiedź 290 wizyt
pytanie zadane 14 stycznia 2018 w Inne języki przez albert3233 Nowicjusz (170 p.)

92,615 zapytań

141,465 odpowiedzi

319,779 komentarzy

61,997 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...