Em dang làm bài tập đọc/ghi file một danh sách mảng thiên thạch gồm MÃ , TÂM THIÊN THẠCH, BÁN KÍNH, TỐC ĐỘ BAY sau đó xuất ra file output.txt nhưng bị lỗi, em debug thử thì thấy ngay vòng lặp nhập mảng thiên thạch tới i=2 thì nó bắt đầu lỗi, nó nhận được MÃ C03 nhưng không nhận được TÂM ,BÁN KÍNH, TỐC ĐỘ BAY trong khi i=0,i=1 chạy bình thường, em cũng không biết sửa sao nữa ạ, mong mọi người giúp em với
Em tạo 3 class : CMangThienThach, CThienThach, CPoint2D
trong file Input.txt :
C07 (3.1, 4.5) 4.56 12
C04 (2.1, 7.0) 2.6 21
C03 (3.7, 99.0) 3.2 14
#pragma once
#include<iostream>
#include <math.h>
using namespace std;
class CPoint2D
{
private:
float dX;
float dY;
public:
CPoint2D Init(float, float);
void Nhap();
float getdX();
float getdY();
void setdX(float);
void setdY(float);
float tinhKhoangCach(CPoint2D);
CPoint2D(float, float);
CPoint2D();
~CPoint2D();
};
//class.cpp
#include "Point2D.h"
void CPoint2D::Nhap() {
char c1,c2,p,t;
cin >> c1 >> dX >> p >> dY >> c2;
}
CPoint2D CPoint2D::Init(float x, float y) {
this->dX = x;
this->dY = y;
return *this;
}
float CPoint2D::getdX() {
return dX;
}
float CPoint2D::getdY() {
return dY;
}
void CPoint2D::setdX(float a) {
dX = a;
}
void CPoint2D::setdY(float b) {
dY = b;
}
float CPoint2D::tinhKhoangCach(CPoint2D c) {
return sqrt((this->dX - c.dX)*(this->dX - c.dX) + (this->dY - c.dY)*(this->dY - c.dY));
}
CPoint2D::CPoint2D(float x, float y)
{
dX = x;
dY = y;
}
CPoint2D::CPoint2D()
{
}
CPoint2D::~CPoint2D()
{
}
#pragma once
#include <iostream>
#include "Point2D.h"
#include <string>
using namespace std;
class CThienThach
{
private :
string ma;
CPoint2D tamThienThach;
float radius;
float tocDoBay;
public:
void Nhap();
void Xuat();
CThienThach();
~CThienThach();
};
//class.cpp
#include "ThienThach.h"
void CThienThach::Nhap() {
string temp,r;
getline(cin, temp);
ma = temp.substr(0, 3);
int t = temp.size() - 2;
cin.seekg(-t,ios::cur);
tamThienThach.Nhap();
cin >> radius >> tocDoBay;
getline(cin, r);
}
void CThienThach::Xuat() {
cout << ma << " (" << tamThienThach.getdX() <<", "<< tamThienThach.getdY() << ") " << radius << " " << tocDoBay << endl;
}
CThienThach::CThienThach()
{
}
CThienThach::~CThienThach()
{
}
#pragma once
#include "ThienThach.h"
class CMangThienThach
{
private :
CThienThach ds[100];
int n;
public:
void Nhap();
void Xuat();
CMangThienThach();
~CMangThienThach();
};
//class.cpp
#include "MangThienThach.h"
void CMangThienThach::Nhap() {
int i = 0;
while (!cin.eof()) {
ds[i].Nhap();
i++;
}
n = i;
}
void CMangThienThach::Xuat() {
for (int i = 0; i < n; i++) {
ds[i].Xuat();
}
}
CMangThienThach::CMangThienThach()
{
}
CMangThienThach::~CMangThienThach()
{
}
// Hàm main
#define _CRT_SECURE_NO_WARNINGS
#include "Point2D.h"
#include "ThienThach.h"
#include <conio.h>
#include "MangThienThach.h"
void main() {
CMangThienThach a;
freopen("INPUT.txt", "rt", stdin);
a.Nhap();
freopen("Output.txt", "wt", stdout);
a.Xuat();
_getch();
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?