Я настоящий начинающий C++, и у меня есть проблема с выходом моего массива char в excelise C++. Меня попросили преобразовать определенный класс UML в C++ и создать рабочий вывод с параметрами, указанными в main. Здесь ист код:C++ char array output в функциях класса
#include <iostream>
#include <stdlib.h>
/*My class defintion book*/
class Book
{ protected:
long int number;
char author[25];
int year;
bool lent;
void setLent(bool x);
bool getLent();
public:
Book(long int n, char a[25], int j, bool x);
long int getNr();
int getYear();
void print();
};
/*Method definition Book*/
Book::Book(long int n, char a[25], int j, bool x)
{number=n;
author=a;
year=j;
lent=x;}
long int Book::getNr()
{return number; }
int Book::getYear()
{return year;}
void Book::setLent(bool x)
{lent=x;}
bool Book::getLent()
{return lent;}
void Book::print()
{
std::cout << "Book Nr: " << number << std::endl;
std::cout << "Author: " << author << std::endl;
std::cout << "Year: " << year << std::endl;
if (lent==0)
std::cout << "Lent [yes/no]: no" << std::endl;
else
std::cout << "Lent [yes/no]: yes" << std::endl;
}
/*MAIN*/
int main()
{
Book b1(123456, "test", 2014, false);
b1.print();
system("pause");
return 0;
Это мой выход:
Book Nr: 123456
Author: b<Vv-[[vóYA
Year: 2014
Lent [yes/no]: no
Press any key to continue...
Как вы можете видеть все выходы работают на «Автор», за исключением. Там я получаю дерьмо. Обратите внимание, что я должен использовать char как тип. поскольку он задан в классе UML, мне пришлось преобразовать его в C++.
Я действительно искал везде. Но не нашел правильного решения. У меня такое ощущение, что это будет очень просто ...
Заранее благодарим за вашу помощь!
'author = a;' <- эта строка в вашем конструкторе не делает то, что вы думаете. Почему вы не используете 'std :: string'? – cdhowie