đồ án giữa kì mà đem lên chợ thế à chú kaka
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
đồ án giữa kì mà đem lên chợ thế à chú kaka
HT117-5277
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
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.