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

Zapis do pliku csv

Ostatnio zmodyfikowano 2010-04-07 21:29
Autor Wiadomość
bartek483
Temat założony przez niniejszego użytkownika
Zapis do pliku csv
» 2010-04-01 16:32:48
Witamm

Jest moze funkcja ktora zapisuje do pliku csv kolumnami, albo oddzielone przecinkami? Z gory dzieki.
P-15680
Elaine
» 2010-04-01 18:02:47
std::fprintf? std::basic_ostream<>::operator<<?
P-15682
bartek483
Temat założony przez niniejszego użytkownika
» 2010-04-07 21:29:27
Nabazgralem to, ale jest problem, zaraz powiem jaki.

C/C++
#include <iostream>
#include <conio.h>
#include <fstream>
#include <list>
#include <cstring>

using namespace std;
//-------------------------------------
struct __Book
{
    char tytul[ 32 ];
    char autor[ 32 ];
    int egzemplarz;
    //char lend[32];
};
//==============================
class SaveLoad
{
public:
    SaveLoad() { }
    void load();
    void save();
    void dodaj( const char * tytul, const char * autor, int egzemplarz );
    void dodaj( struct __Book * p );
   
private:
    list < struct __Book *> books;
};

//--------------------------------------------------------------
void SaveLoad::dodaj( const char * tytul, const char * autor, int egzemplarz )
{
    struct __Book * const p = new struct __Book;
   
    strncpy( p->tytul, tytul, sizeof( p->tytul ) );
    strncpy( p->autor, autor, sizeof( p->autor ) );
    p->egzemplarz = egzemplarz;
   
    dodaj( p );
}
//--------------------------------------------------------------
void SaveLoad::dodaj( struct __Book * p )
{
    int licz = 0;
    if( books.empty() == false )
    {
        for( list < struct __Book *>::iterator it = books.begin(); it != books.end(); ++it )
        {
            if( strcmp(( ** it ).tytul, p->tytul ) == - 1 )
            {
                books.insert( it, p );
                return;
            }
        }
        books.push_back( p );
    }
    else books.push_back( p );
   
}
//--------------------------------------------------------------
void SaveLoad::save()
{
    ofstream plik;
    plik.open( "books.csv", ios::out | ios::app );
   
    if( plik.good() )
    {
        for( std::list < struct __Book *>::iterator it = books.begin(), e = books.end(); it != e; ++it )
        {
            plik <<( * it )->tytul << ',' <<( * it )->autor << ',' <<( * it )->egzemplarz << '\n';
        }
    }
    plik.close();
}
//--------------------------------------------------------------
int main()
{
    char tab[ 32 ];
    char tab2[ 32 ];
    int l;
   
    cout << "tytul: ";
    cin >> tab;
    cout << "Autor: ";
    cin >> tab2;
    cout << "Egzemplarz: ";
    cin >> l;
   
    SaveLoad baza;
   
    baza.dodaj( tab, tab2, l );
   
    baza.save();
   
    _getch();
    return 0;
}

Program nie sortuje, a powinien, moglby kto mi pow dlaczego nie sortuje? ;) Bylbym wdzieczny ;)
P-15915
« 1 »
  Strona 1 z 1