Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Bị lỗi dính chuỗi khi nhập xuất chuỗi từ file trong C++?

  1. #1
    Ngày gia nhập
    11 2011
    Nơi ở
    q9 th HCM
    Bài viết
    1

    Mặc định Bị lỗi dính chuỗi khi nhập xuất chuỗi từ file trong C++?

    Mình viết code bằng C++ nhập vào thư viện sách từ File vẫn chạy được nhưng khi xuất thì lại bị lỗi TenSach xuất ra 2 lần. Lần đầu thì bị dính vào ISBN(mã sách) như thế này (file output.txt):

    345-21-57-986Ly Thuyet Do Thi
    LY THUYET DO THI
    TRAN DAN THU
    CNTT
    DH KHTN
    5/10/2011
    239-84-29-858Phuong Phap Lap Trinh Huong Doi Tuong
    PHUONG PHAP LAP TRINH HUONG DOI TUONG
    TRAN DAN THU
    CNTT
    DH KHTN
    10/8/2011

    Nếu sử dụng File.clear() và File.sync() thì lại nhập vào toàn chuỗi rỗng. Anh chị nào biết cách sửa thì giúp mình với. Cảm ơn mọi người nhiều!
    Đây là code của mình:
    #ifndef _LIB_H
    #define _LIB_H
    #include<iostream>
    #include<fstream>
    #include<vector>
    using namespace std;
    struct SNgay
    {
    int ngay, thang, nam;
    };
    class Book
    {
    char ISBN[13],TenSach[256], TacGia[256], TheLoai[256], NhaXB[256];
    SNgay NgayXB;
    public:
    friend istream& operator >>(istream &is,Book &);
    friend ostream& operator <<(ostream &os,Book);
    }
    class QLSach
    {
    vector<Book> B;
    public:
    void nhapFile(char* fName);
    void xuatDanhSach(char* fName);
    };
    #endif

    istream& operator >>(istream &is,Book &s)
    {
    is.ignore();
    is.getline(s.ISBN,14); //char ISBN[13];
    is.getline(s.TenSach,256);
    is.getline(s.TacGia,256);
    is.getline(s.TheLoai,256);
    is.getline(s.NhaXB,256);
    is >> s.NgayXB.ngay;
    is >> s.NgayXB.thang;
    is >> s.NgayXB.nam;
    return is;
    }
    ostream& operator <<(ostream &os,Book s)
    {
    os << s.ISBN << endl;
    os << strupr(s.TenSach) << endl;
    os << strupr(s.TacGia) << endl;
    os << strupr(s.TheLoai) << endl;
    os << strupr(s.NhaXB) << endl;
    os << s.NgayXB.ngay << "/" << s.NgayXB.thang << "/" << s.NgayXB.nam << endl;
    return os;
    }
    void QLSach::nhapFile(char* fName)
    {
    ifstream File(fName);
    if(!File.is_open())
    cout << "Khong tim thay";
    else
    {
    int SL;
    File >> SL;
    B.resize(SL);
    for(int i=0; i<SL; i++)
    {
    File >> B[i];
    }
    }
    File.close();
    }
    void QLSach::xuatDanhSach(char* fName)
    {
    ofstream File(fName);
    File << B.size() << endl;
    for(int i=0; i<B.size(); i++)
    {
    File << B[i];
    }
    File.close();
    }
    NCKhang

  2. #2
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    đồ án giữa kì mà đem lên chợ thế à chú kaka
    HT117-5277

  3. #3
    Ngày gia nhập
    07 2011
    Bài viết
    160

    Lỗi vì quá tiết kiệm.
    Sửa char ISBN[13]
    thành ít nhất char ISBN[14]
    nếu là mình thì mình để [20] hoặc [50] cho đẹp

  4. #4
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    520

    góp ý bạn chủ thread : lần sau để code trong tag code nhé, để code thế này nhìn rất nản, cá nhân mình đọc bài post của bạn cũng ngại, nói gì đến giúp đỡ, tìm hiểu vấn đề sai ở đâu. xem thêm tại đây :
    http://diendan.congdongcviet.com/showthread.php?t=6131

    mấy bạn bên trên soi ra được thì mình cũng bái phục, nhiệt tình thật

    Đọc post nào không cho code vào tag, bình thường mình đi ra luôn, không đọc nữa.

Các đề tài tương tự

  1. Cách so sánh chuỗi nhập vào với chuỗi trong file [ c++ ]
    Gửi bởi badboys1291 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 03-08-2012, 04:34 PM
  2. Bài tập C++ Cách để so sánh 2 chuỗi kí tự giữa chuỗi nhập từ phím và chuỗi từ file xem có giống nhau không?
    Gửi bởi davilson18 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 09-06-2012, 09:47 AM
  3. Trả lời: 1
    Bài viết cuối: 29-06-2011, 12:02 AM
  4. Turbo C Lỗi Nhập một chuỗi và 1 từ cho biết từ đó xuất hiện trong chuỗi bao nhiêu lần?
    Gửi bởi vietvinhqn1992 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 17-01-2011, 12:38 PM
  5. Nhập chuỗi, đếm số lần xuất hiện các từ trong chuỗi như thế nào?
    Gửi bởi VizDee trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 23-01-2010, 01:33 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn