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

brak zapisu do pliku

Ostatnio zmodyfikowano 2018-06-20 14:23
Autor Wiadomość
magmat
Temat założony przez niniejszego użytkownika
brak zapisu do pliku
» 2018-06-20 14:15:49
Po dodaniu wykonaniu funkcji 1 - write_books(); i przejściu do 2 - display_books(); nie wyświetla się wpisanie tego z '1', a że plik pusty to nie wyświetla się nic. Jak to rozwiązać? Dlaczego tak sie dzieje?
C/C++
#include<iostream>
#include<iomanip>
#include<fstream>
#include<cmath>
#include<cstdbool>
#include<string>
#include<conio.h>
#include<vector>
#include<string>
#include<algorithm>
#include<cstdio>

using namespace std;

void write_books();
lass book {
    int ID_book;
    string title, author;
public:
    void add_book();
    void show_book();
    //void modify_book();
};

void book::add_book() {
    cout << "Creating new book: " << endl;
    cout << "ID: ";
    cin >> ID_book;
    cout << endl << "Title: ";
    getline( cin, title );;
    cin.get();
    cout << endl << "Author: ";
    getline( cin, author );
    cin.get();
}
void book::show_book() {
    cout << ID_book << "\t" << title << "\t" << author << endl;
}

class library
    : public book
     , public user
{
public:
    void display_books();
    void display_users();
};

book bk;
library lbr;
fstream fp;

void library::display_books() {
    fstream fp;
    fp.open( "books.txt" );
    if( !fp )
    {
        cout << "Cannot open the file. ";
        system( "PAUSE" );
        return;
    }
    cout << "Book list" << endl
    << "===============================================" << endl;
    cout << "Book's ID" << "\t" << "Title" << "\t" << "\t" << "Author" << endl
    << "===============================================" << endl;
    while( fp.read(( char * ) & bk, sizeof( book ) ) )
    {
        bk.show_book();
    }
    fp.close();
    system( "pause" );
}

int main()
{
    int choice;
    cout << "---=== Library ==---" << endl;
    start:
    choice = 0;
    cout << "What do you want to do?"
    << endl << "1. Add new book."
    << endl << "2. Show all books."
    << endl << "3. Exit." << endl;
   
    cin >> choice;
   
    switch( choice ) {
    case 1:
        system( "cls" );
        write_books();
        break;
    case 2:
        system( "cls" );
        lbr.display_books();
        break;
    case 3:
        return 0;
    }
    goto start;
}

void write_books() {
    char choice;
    fp.open( "books.txt" );
    if( !fp )
    {
        cout << "Cannot open the file.";
        system( "PAUSE" );
        return;
    }
    do {
        system( "cls" );
        bk.add_book();
        cin.ignore( numeric_limits < streamsize >::max(), '\n' );
        cout << endl << "Do you want to add more record? Y-yes;";
        cin >> choice;
        cin.clear();
    } while( choice == 'y' || choice == 'Y' );
   
    fp.close();
    system( "cls" );
}
P-171644
YooSy
» 2018-06-20 14:23:24
» Kurs C++ / FAQstd::getline() mi nie działa! pytanie/odpowiedź
Zapis binarny

Zapoznaj się z technikami debugowania.
P-171645
« 1 »
  Strona 1 z 1