Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Baza danych w c++

Ostatnio zmodyfikowano 2016-06-08 09:04
Autor Wiadomość
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

C/C++
#include <iostream>
#include <list>

#include <cstdlib>
#include <cstdio>
#include <ctime>

#include <string>
#include <fstream> //dla plikow

using namespace std;

int main() {
    //definicja zmiennych
    list < string > Nazwiska; //??
    list < int > Wieki; //??
    int mode = - 1;
    string NazwiskoTemp;
    int WiekTemp;
    list < string >::iterator i; //??
    list < int >::iterator j; //??
    string NazwaPliku;
    //koniec definicji zmiennych
   
    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 )
        {
            //dziala
            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 )
        {
            //dziala
            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 )
        {
            //dziala
            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ć

C/C++
cin >> WiekTemp
i
cout << "Nazwisko: " << * i << " Wiek: " << * j << endl;

wykorzystując do nich printf i scanf
P-148947
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:
C/C++
std::ios_base::sync_with_stdio( false );
std::cout << '\n';
std::cin.tie( nullptr );

Wysoka wydajność strumieni C++

printf()
scnaf()
P-148949
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?
P-148957
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().
P-148958
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
P-148960
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).
P-148963
« 1 »
  Strona 1 z 1