Baza danych w c++
Ostatnio zmodyfikowano 2016-06-08 09:04
SeweXIN Temat założony przez niniejszego użytkownika |
Baza danych w c++ » 2016-06-07 08:26:30 Witajcie ponownie, mam taki problem ponieważ mam kod #include <iostream> #include <list>
#include <cstdlib> #include <cstdio> #include <ctime>
#include <string> #include <fstream>
using namespace std;
int main() { list < string > Nazwiska; list < int > Wieki; int mode = - 1; string NazwiskoTemp; int WiekTemp; list < string >::iterator i; list < int >::iterator j; string NazwaPliku; while( mode != 6 ) { printf( "\nWybierz tryb:\n" ); printf( "1. Dodaj osobe\n" ); printf( "2. Usun osobe\n" ); printf( "3. Wyswietl liste\n" ); printf( "4. Zapisz do pliku\n" ); printf( "5. Wczytaj z pliku\n" ); printf( "6. Wyjscie z programu\n" ); scanf( "%d", & mode ); if( mode == 1 ) { printf( "Podaj nowe nazwisko:\n" ); cin >> NazwiskoTemp; Nazwiska.push_back( NazwiskoTemp ); printf( "Podaj wiek:\n" ); cin >> WiekTemp; Wieki.push_back( WiekTemp ); } else if( mode == 2 ) { i = Nazwiska.begin(); j = Wieki.begin(); printf( "Podaj nazwisko do usuniecia:\n" ); cin >> NazwiskoTemp; while( true ) { if( * i == NazwiskoTemp ) { Nazwiska.erase( i ); Wieki.erase( j ); break; } else { ++i; ++j; } } } else if( mode == 3 ) { for( i = Nazwiska.begin(), j = Wieki.begin(); i != Nazwiska.end(); ++i, ++j ) cout << "Nazwisko: " << * i << " Wiek: " << * j << endl; } else if( mode == 4 ) { printf( "\nPodaj nazwe pliku do zapisania(np. plik.txt)\n" ); cin >> NazwaPliku; ofstream plik( NazwaPliku.c_str() ); for( i = Nazwiska.begin(), j = Wieki.begin(); i != Nazwiska.end(); ++i, ++j ) { plik << * i << "\n" << * j << "\n"; } plik.close(); cout << endl << "Zapisano do pliku " << NazwaPliku << endl; } else if( mode == 5 ) { string line; printf( "\nPodaj nazwe pliku do wczytania(np. plik.txt)\n" ); cin >> NazwaPliku; ifstream plik( NazwaPliku.c_str() ); if( plik.is_open() ) { while( getline( plik, line ) ) { Nazwiska.push_back( line ); getline( plik, line ); Nazwiska.push_back( line ); } plik.close(); } else printf( "\nNie mozna otworzyc pliku" ); } else printf( "\nNierozpoznany tryb operacja.\n" ); } getchar(); return 0; }
czy mógłby mi ktoś powiedzieć jak moge inaczej zapisać cin >> WiekTemp i cout << "Nazwisko: " << * i << " Wiek: " << * j << endl;
wykorzystując do nich printf i scanf |
|
carlosmay |
» 2016-06-07 10:43:44 wykorzystując do nich printf i scanf |
Dlaczego chcesz zmienić C++ na C? Jeśli chcesz przyspieszyć działanie programu skorzystaj z narzędzi dla C++ tj: std::ios_base::sync_with_stdio( false ); std::cout << '\n'; std::cin.tie( nullptr ); Wysoka wydajność strumieni C++printf()scnaf() |
|
SeweXIN Temat założony przez niniejszego użytkownika |
» 2016-06-07 21:01:23 ponieważ c wydawał mi sie łatwiejszy, ale może nie bede zmieniał ponieważ nie chce niczego popsuć bo działa mi cały program, lecz nie wiem jak zrobić to żeby imie też tam zmieścić. Może mi ktoś pomóc?
|
|
carlosmay |
» 2016-06-07 21:57:20 ale może nie bede zmieniał ponieważ nie chce niczego popsuć bo działa mi cały program |
Czy to jest twój kod? Podałem linki nt printf i scanf. Program to mieszanka C i C++. Zdecyduj się na jeden. Do wyświetlenia stringa w printf użyj c_str(). |
|
SeweXIN Temat założony przez niniejszego użytkownika |
» 2016-06-07 23:38:14 Tak to jest moj kod robiony własnoręcznie, poswiecilem na niego 2h |
|
carlosmay |
» 2016-06-08 09:04:39 Proponuję powiązać dane tj. Imię, nazwisko, wiek itd. w strukturę i stworzyć tablicę (zbiór) struktur (np. std::multiset z funkcją sortującą wg nazwiska). |
|
« 1 » |