Форум программистов, компьютерный форум CyberForum.ru

Не передаётся строка в элемент класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Помогите переделать работу с массивом через указатели http://www.cyberforum.ru/cpp-beginners/thread1105550.html
помогите оформить через указатели...понимаю,что элементарно....но я трамвай for(j=k; j<=N; j++) { r=a; a=a; a=r; }
C++ Склонение по падежам. хЭлп Ми Мне нужно написать программу склоняющие по падежам желательно Казахского языка,можно и Русского. я поменяю окончание,желательно по простому. буду благодарен,спасибо скажу. заранее благодарю!:rtfm: http://www.cyberforum.ru/cpp-beginners/thread1105546.html
C++ бесконечный цикл при исключениях
#include <iostream> #include <string> #include <exception> #include <locale.h> using namespace std; int main()
C++ Правильно ли написана программа?
Задача такова. Перед авиаперелётом на известное расстояние закупается топливо для самолёта. Топливо продаётся в ёмкостях заданного объёма, указана цена одной ёмкости. Также известен расход топлива самолёта. Требуется определить, хватит ли имеющейся суммы денег на закупку необходимого количества топлива. Топливо также может быть закуплено у иностранного поставщика, поэтому требуется узнать...
C++ Вводятся 2 строки. Перевернуть обе строки, склеить и вывести http://www.cyberforum.ru/cpp-beginners/thread1105520.html
Помогиет с заданием! Вводятся 2 строки. Перевернуть обе строки, склеить и вывести. 1)тип string Код: #include<iostream> using namespace std; #include <string>
C++ Нахождение наиболее подходящей последовательности Здравствуйте! Неоднократно сталкивался с разными задачами, которые, как мне кажется, сводятся к одной и той же. Хотел бы, чтобы кто-нибудь объяснил, как решаются задачи такого типа. Мне не нужен код, главное - принцип. Вот задача (вкратце): "В аэропорту имеется только одна взлётная полоса. Одновременно на ней НЕ могут находится несколко самолётов. Про все ждущие разрешения на вылет самолёты... подробнее

Показать сообщение отдельно
Agrik
5 / 5 / 0
Регистрация: 31.03.2013
Сообщений: 120
25.02.2014, 21:58     Не передаётся строка в элемент класса
Есть задача создать класс Golf. Первый метод ввода - вводим заранее приготовленное имя и гандикап в самой программе, второй метод - вводим с клавиатуры. Необходима инициализировать два объекта класса разными способами, изменить их гандикап и вывести на экран. Всё меняется и выводится. Проблема в следующем: вместо моих имён и фамилий выводит какие-то стрёмные символы, когда делал с помощью структур эту же задачу, то всё работало.
cgolf.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#ifndef CGOLF_H_
#define CGOLF_H_
class Golf
{
private:
    enum {Len=40};
    char fullname[Len];
    int hand;
public:
    Golf();
    ~Golf();
    void setgolf(const char * name, int hc);
    const Golf & setgolf(Golf &g);
    void handicap(int hc);
    void showgolf() const;
};
#endif
cgolf.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include<iostream>
#include<cstring>
#include<string>
#include"cgolf.h"
using namespace std;
 
    Golf::Golf()
    {
        strcpy(fullname,"void");
        hand=0;
    }
    Golf::~Golf()
    {
    }
 
void Golf::setgolf(const char * name, int hc)
{
    strncpy(fullname, name,Len);
    fullname[40]='\0';
    hand=hc;
}
 
const Golf & Golf::setgolf(Golf &g)
{
    cout<<"Vvedite im'a igroka: ";
    cin.getline(fullname, Len);
    cout<<"Vvedite handicap: ";
    cin>>hand;
    cin.sync();
        if(strlen(fullname)!=0)
            return g;
        else 
            return *this;
}
 
void Golf::handicap(int hc)
{
    hand=hc;
}
 
void Golf::showgolf() const
{
    cout << "name: " << fullname[Len] << "  handicap: " << hand << endl;
}
cusegolf.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream>
#include<cstring>
#include<string>
#include"cgolf.h"
using namespace std;
 
const int f = 4;
int main ()
{
    //using std::ios_base;
    Golf arr[2];
 
    arr[0].setgolf("Ann Birdfree", 24);
    arr[0].showgolf();
    arr[0].handicap(10);
    arr[0].showgolf();
 
    arr[1].setgolf(arr[1]);
    arr[1].showgolf();
    arr[1].handicap(46);
    arr[1].showgolf();
 
 
  system("PAUSE");
  return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru