Kefirek Temat założony przez niniejszego użytkownika |
» 2013-12-15 21:42:16 To jak tą część kodu poprawić? |
|
Monika90 |
» 2013-12-15 21:49:13 Zamiast wczytywać do vektor[j], to wczytuj do zmiennej typu klient, a nastepnie dodawaj ją na końcu wektora za pomocą push_back. |
|
pekfos |
» 2013-12-15 21:55:57 Proszę wziąć przykład ze mnie - napisałem prosty program dla potrzebujacego pomocy, poświęciłem swój czas i mam satysfakcję ze ktoś z tego skorzysta |
Lepiej nie. Dawanie wskazówek, nawet lakonicznych, i wskazywanie problemu jest o wiele lepszą pomocą, niż podanie gotowego programu (którego pisanie najczęściej jest stratą czasu). Co z podania rozwiązania konkretnego przypadku, konkretnego problemu, gdy potrzebujący nie wyniesie z tego wiedzy, pozwalającej w przyszłości samodzielnie rozwiązać podobny problem? Chcesz pisać gotowce - pisz, ale miej na względzie, że możesz tym narobić więcej złego, niż dobrego. |
|
Kefirek Temat założony przez niniejszego użytkownika |
» 2013-12-15 21:59:41 Zrobiłem tak jak napisałaś: void Odczyt_do_ekranu() { ifstream do_ekranu( "C:\\Users\Dell\\Documents\\Visual Studio 2012\\Projects\\vektor\\vektor\\Kontrahenci.txt", ios::in | ios::beg | ifstream::binary ); int j = 0; klient kup; while( do_ekranu.read(( char * ) & kup, sizeof( kup ) ) ) { vektor.push_back( kup ); cout << vektor[ j ].nazwa << endl; cout << vektor[ j ].kg << endl; cout << vektor[ j ].price << endl; j++; } }
i na razie dalej bez zmian - "help" the Beatels |
|
Kefirek Temat założony przez niniejszego użytkownika |
» 2013-12-15 22:16:26 Odp do Pekfos Może masz rację ale tylko połowicznie. Na pewno pisanie gotowców nie jest do końca dobrym rozwiązaniem. Dlaczego - jeżeli zainteresowany nie przeanalizuje kodu i czegoś się z tego nie nauczy to masz rację. Ja załączyłem kod - czyli coś zrobiłem sam , ale znalazłem się w ślepym zaułku i jestem w nim 2 tyg. Dlatego zapisałem się do tego forum i liczyłem na konstruktywną fachową pomoc - niestety trochę jestem rozczarowany. Dlaczego - dlatego że niewielka cześć tego co napisałem wymaga modyfikacji aby program działał poprawnie. Po takiej podpowiedzi mogę sam dojść co źle zrobiłem - i w ten sposób czegoś się nauczyć. Potem tą wiedzę można dalej przekazać - no ale niestety bawimy się w podchody. Pozdrawiam Kefirek |
|
Monika90 |
» 2013-12-15 22:43:20 Pokaż aktualny kod w całości, ale taki, który da się skompilować i uruchomić. Tzn: - nie używaj niestandardowych nagłówków - używaj nawiasów <> dla standardowych nagłówków - użyj main, a nie jakiegoś _tmain - usuń wszystkie wywołania system - nie używaj absolutnych ścieżek przy otwieraniu plików Inaczej nie będę mogła Ci pomóc. |
|
Kefirek Temat założony przez niniejszego użytkownika |
» 2013-12-15 23:15:37 Oto jest: #include <stdafx.h> #include <iostream> #include <fstream> #include <vector> #include <string>
using namespace std; const int Size = 30; struct klient { char nazwa[ Size ]; double kg; double price; };
vector < klient > vektor;
int ilu_klientow;
void Dodaj_klienta(); void Show_wprow_dane(); void Zapis_plik(); void Odczyt_do_ekranu();
int main() { Dodaj_klienta(); Show_wprow_dane(); Zapis_plik(); Odczyt_do_ekranu(); cout << endl; char koniec; cin >> koniec; return 0; }
void Dodaj_klienta() { cout << "Ilu klientów chcesz wprowadzić: "; cin >> ilu_klientow; klient kupujacy; for( int i = 0; i < ilu_klientow; ++i ) { cout << "Wprowadź nazwę klienta: "; cin.get(); cin.getline( kupujacy.nazwa, 30 ); cout << "Ile kg sprzedano: "; cin >> kupujacy.kg; cout << "Podaj cenę za kilogram: "; cin >> kupujacy.price; vektor.push_back( kupujacy ); } }
void Show_wprow_dane() { cout << "Wprowadzono dane: " << endl; for( int i = 0; i < ilu_klientow; ++i ) { cout << vektor[ i ].nazwa << endl; cout << vektor[ i ].kg << endl; cout << vektor[ i ].price << endl; } cout << endl; }
void Zapis_plik() { ofstream do_pliku( "C:\\Kontrahenci.txt", ios::out | ios::app | ifstream::binary ); do_pliku.write(( char * ) & vektor.front(), vektor.size() * sizeof( klient ) ); do_pliku.close(); }
void Odczyt_do_ekranu() { ifstream do_ekranu( "C:\\Kontrahenci.txt", ios::in | ios::beg | ifstream::binary ); int j = 0; klient kup; cout << "Odczyt z pliku : " << endl; while( do_ekranu.read(( char * ) & kup, sizeof( kup ) ) ) { vektor.push_back( kup ); cout << vektor[ j ].nazwa << endl; cout << vektor[ j ].kg << endl; cout << vektor[ j ].price << endl; ++j; } }
|
|
Kefirek Temat założony przez niniejszego użytkownika |
» 2013-12-15 23:28:11 Program pisany na konsolę w Visual studio 2012 |
|
1 2 « 3 » 4 |