01/10/2018, 15:05

Lỗi không thể nhập biến char trong class

xin chào mọi người, mình đang làm bài tập class quản lí thư viện C++ mà gặp lỗi không thể nhập dữ liệu cho biến char TenSach[40] (theo yêu cầu của đề). Chương trình chạy không báo lỗi nhưng sẽ không để mình nhập tên sách mà tới bước nhập giá sách luôn ạ. Mình xin cảm ơn.
file Sach.h

#pragma once
#include <iostream>
#include <string>
using namespace std;
class Sach
{
private:
	int MaSach;
	char TenSach[40];
	float Gia;
public:
	void Nhap();
	void Xuat();
	int TimSach;
	int XuatTenSach();
	int GiaCaoNhat();
};

file ThuVien.h

#pragma once
#include "Sach.h"
class ThuVien
{
private:
	Sach CacSach[100];
	int n;

public:
	void NhapAllSach();
	void XuatAllSach();
	
};

file Sach.cpp

#include "Sach.h"

void Sach::Nhap()
{
	
	cout << "Nhap ma sach: ";
	cin >> MaSach;
	
	cout << "Nhap ten sach: ";
	gets_s(TenSach);
	cout << "Nhap gia sach: ";
	cin >> Gia;
}

void Sach::Xuat()
{
	cout << "Ma sach: " <<MaSach<< endl;
	cout << "Ten sach: " << TenSach << endl;
	cout << "Gia sach: " << Gia << endl;
}

file ThuVien.cpp

#include "ThuVien.h"

void ThuVien::NhapAllSach()
{
	cout << "Nhap so luong sach: ";
	cin >> n;
	for (int i = 0; i < n; i++)
		CacSach[i].Nhap();
}

void ThuVien::XuatAllSach()
{
	for (int i = 0; i < n; i++)
		CacSach[i].Xuat();
}

file main.cpp

#include "ThuVien.h"

void main()
{
	ThuVien a;
	a.NhapAllSach();
	cout << "tat ca cac sach: " << endl;
	a.XuatAllSach();
	system("pause");
}

Nguyễn Tấn Tài viết 17:11 ngày 01/10/2018

không ảnh hưởng gì bạn nhé, int main vẫn bị lỗi không nhập được

Pham Van Hai viết 17:06 ngày 01/10/2018

Bạn chịu khó dùng chức năng tìm kiếm trên diễn đàn sẽ có câu trả lời, ví dụ

Mình viết chương trình nhập n sinh viên sử dụng class. Ở hàm nhập sinh viên mình đã gọi hàm fflush(stdin) để xóa bộ nhớ đệm rồi mà lúc chạy chương trình vẫn không dừng lại để nhập mã số sinh viên là sao ??? #include <iostream> #include <string> using namespace std; class Candidate { private: string mssv, hoten; int ngay, thang, nam; float toan, van, anh; public: void nhap(); void xuat(); }; void Candidate::nhap() { fflush(stdin); cout << "\nNhap ma so sinh vien : "; getline(cin, ms…

Nguyễn Tấn Tài viết 17:20 ngày 01/10/2018

cảm ơn nhé mình sửa được rồi

Bài liên quan
0