[C++] zapis/odczyt do pliku
Ostatnio zmodyfikowano 2013-02-28 01:42
fryderykst Temat założony przez niniejszego użytkownika |
[C++] zapis/odczyt do pliku » 2013-02-27 15:24:23 #include "stdafx.h" #include <iostream> #include <string> #include <fstream> #include <iomanip> using namespace std;
class operacja { public: fstream plik; int nrlinijki; int * a; operacja( string sciezka ) { plik.open( sciezka.c_str(), ios::in | ios::out | ios::trunc | ios::binary ); nrlinijki = 0; } ~operacja() { plik.close(); } void zapis( int wartosc ); int * odczyt( int wartosc ); };
void operacja::zapis( int wartosc ) { plik.seekp( nrlinijki * sizeof( int ) ); plik.write(( char * ) & wartosc, sizeof( int ) ); cout << "Zapisano" << endl; nrlinijki++; }
int * operacja::odczyt( int wartosc ) { cout << "TU" << endl; plik.seekg( wartosc * sizeof( int ) ); cout << "powskazaniu" << endl; plik.read(( char * ) & a, sizeof( int ) ); cout << "Odczytano" << endl; return a; }
int main() { string olek( "C:\\Users\\Fryderyk\\Desktop\\plik.tmp" ); operacja * plik; plik = new operacja( olek ); int i; cin >> i; plik->zapis( i ); int * x = plik->odczyt( 0 ); cout << x << endl; delete plik; system( "PAUSE" ); return 0; }
ok, mam taki kod źródłowy, testowałem w devie i visualu. dokładnie chodzi mi o odczyt, bo zapis wydaje się być prawidłowy. Na ekranie pojawia mi się liczba którą podam podczas zapisu, lecz w zapisie 16-nastkowym + kilka zer z przodu, próbowałem to zmienić manipulatorem "dec", ale nic to nie dało. Mógłby mi ktoś poradzić gdzie jest problem, co zrobiłem źle? |
|
usmiech |
» 2013-02-28 01:42:07 Prawde mowiac nie do konca rozumiem co ma robic program :) A odnosnie klas to wole dodawac do headers definicje klasy , a do cpp implementacje, ale to tylko odnosnie techniki :) |
|
« 1 » |