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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
MrDreher
1 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 71
#1

Нелогичная работа кода - C++

15.03.2014, 18:39. Просмотров 953. Ответов 35
Метки нет (Все метки)

Есть код. Но делает он совсем не то, что по идее должен.
Вот код:
1) файл main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//---------------------------------------------------------------------------
#include "LongNumber.hpp"
#include <iostream>
//---------------------------------------------------------------------------
using namespace std;
//---------------------------------------------------------------------------
int main()
{
        LongNumber a;
        a.setdata();
        a.view();
 
        system("pause");
        return 0;
}
//---------------------------------------------------------------------------
2) Файл LongNumber.hpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#ifndef LONGNUMBER_H
#define LONGNUMBER_H
class LongNumber
{
   private:
        char num[];
        int count;
        int base;
   public:
        LongNumber();
        void setdata();
        void view();
};
#endif
3) Файл LongNumber.hpp
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
#include "LongNumber.hpp"
#include <iostream>
//---------------------------------------------------------------------------
using namespace std;
//---------------------------------------------------------------------------
LongNumber::LongNumber()
{ }
//---------------------------------------------------------------------------
void LongNumber::setdata()
{
        printf("Enter the count: ");
        scanf("%d", &count);
        printf("Enter the number: ");
        scanf("%s",num);
        printf("Enter the base: ");
        scanf("%d",&base);
}
//---------------------------------------------------------------------------
void LongNumber::view()
{
        printf ("Number = %s \n", num);
        printf ("Count = %d \n", count);
        printf ("Base = %i \n", base);
}
//---------------------------------------------------------------------------
Есть задача: ввести с клавиатуры "число"(по сути строку, т.к. число не обязательно в 10чной системе счисления), и ввести основание системы счисления введенного числа. Это метод getdata(). Метод view() должен вывести данные в консоль.
Написал код, вроде должен работать. Но, в итоге получаются какие-то дивные вещи:
1) Вводишь count - все ок. Когда вводишь num то в count уже другие значения.
2) View выводит бред взятый непонятно откуда.

Почему код работает таким странным способом? Как исправить ошибку?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2014, 18:39     Нелогичная работа кода
Посмотрите здесь:

Сортировка Шелла работа кода - C++
Ребята, вопрос возможно простой, но лично я не совсем понимаю что происходит #include &lt;cstdlib&gt; #include &lt;iostream&gt; using...

Работа со стеками, объяснение кода программы - C++
Есть код программы (вырванный из целой проги кусок). В нем используются стеки. Помогите, пожалуйста, построчно (максимально подробно)...

Работа с файлом в виде двоичного кода - C++
Здравствуйте. Продолжаю работу над внедрением в картинку TIFF текстового файла. Собственно говоря, задача №1 - считать текст из файла в...

Работа с двумерным массивом - разобрать строку кода - C++
Изучаю С++ по книге Шилдт Г.(базовый курс 3-е издание). В теме двумерных массивов столкнулся со строкой, над которой сколько бы не ломал...

Непонятна часть кода программы - работа с файлами - C++
Программа, выводящая символы из файла в обратном порядке. Часть кода: ..... std::ostringstream stream; stream &lt;&lt;...

Сравнить каждое слово с предыдущи. Непонятна работа кода - C++
Очень стыдно, но не могу не спросить. Вот код: string previous = &quot; &quot;; string current; while (cin &gt;&gt; current) { if (previous ==...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
Заблокирован
16.03.2014, 06:23     Нелогичная работа кода #21
Цитата Сообщение от taras atavin Посмотреть сообщение
Да ну! А на чём же её ещё узнавать?
боянишь, тётка. Вырвал фразу из контекста... Отлов екзепшнс изучается абстрактно от языков программирования. Но... в известной литературе используется как правило... ДА!, БЛДЖАД, СИ!.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2014, 07:45     Нелогичная работа кода #22
А при чём здесь городская юаня, когда речь о различии между типами? Соответственно надо писать на языке, знакомом с обоими, причём, поддержка только равной, но в другом синтаксисе не подходит.
alkagolik
Заблокирован
16.03.2014, 07:49     Нелогичная работа кода #23
Цитата Сообщение от taras atavin Посмотреть сообщение
А при чём здесь городская юаня, когда речь о различии между типами?
при том что сам приплюснутый язык не дает (точнее снимает) обязанность контроля памяти.
Цитата Сообщение от taras atavin Посмотреть сообщение
Соответственно надо писать на языке, знакомом с обоими.
Надо забыть кресты как страшный сон.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2014, 07:51     Нелогичная работа кода #24
Цитата Сообщение от alkagolik Посмотреть сообщение
Отлов екзепшнс изучается абстрактно от языков программирования. Но... в известной литературе используется как правило... ДА!, БЛДЖАД, СИ!.
Не знающий ни классов (а один из обсуждаемых типов - класс), ни экзепшенов.

Добавлено через 1 минуту
Цитата Сообщение от alkagolik Посмотреть сообщение
Надо забыть кресты как страшный сон.
Согласен, кресты надо забыть. В отличие от плюсов.
alkagolik
Заблокирован
16.03.2014, 07:51     Нелогичная работа кода #25
Цитата Сообщение от taras atavin Посмотреть сообщение
Не знающий ни классов, ни экзепшенов.
Привет!. Я так и понял. Квадратные уравнения давно научился решать?
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2014, 07:51     Нелогичная работа кода #26
Цитата Сообщение от alkagolik Посмотреть сообщение
при том что сам приплюснутый язык не дает (точнее снимает) обязанность контроля памяти.
Это как? Плюсы - не решётка, на которой попытки контроля памяти бесполезны.
alkagolik
Заблокирован
16.03.2014, 07:55     Нелогичная работа кода #27
Цитата Сообщение от taras atavin Посмотреть сообщение
(а один из обсуждаемых типов - класс
ты инопланетный? класс не есть тип. Это концепт, один из подходов к проектированию в информатике (если коротко). Ты вообще в теме? Сомневаюсь. ЛОЛ

Добавлено через 1 минуту
Цитата Сообщение от taras atavin Посмотреть сообщение
Плюсы - не решётка, на которой попытки контроля памяти бесполезны.
что еще за боян? наследование Си дает полный контроль (и доступ).
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2014, 07:58     Нелогичная работа кода #28
Цитата Сообщение от alkagolik Посмотреть сообщение
ты инопланетный? класс не есть тип. Это концепт, один из подходов к проектированию в информатике (если коротко). Ты вообще в теме?
Во-первых любой тип - концепт, способ интерпретации байтов, потому на асме их и нет, а есть только разрядности. А во-вторых класс в программировании - совсем не то, как его переносят в область моделирования реального мира, не любая категория чего угодно, а как раз тип, объединяющий в одной сущности данные и операции с ними. string объединяет в одной сущности формат строки и операции над строками в этом формате и является классом, а указатель - это только место для хранения адреса. И контроль памяти здесь - лишь один из нюансов, не более.
alkagolik
Заблокирован
16.03.2014, 07:59     Нелогичная работа кода #29
перефразирую .. сформулирую:
наследование концепта "с" (абсолютный доступ) приводит к "тираниии".
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2014, 08:02     Нелогичная работа кода #30
Цитата Сообщение от alkagolik Посмотреть сообщение
Привет!. Я так и понял. Квадратные уравнения давно научился решать?
В прошлом веке.

Добавлено через 58 секунд
Цитата Сообщение от alkagolik Посмотреть сообщение
что еще за боян? наследование Си дает полный контроль (и доступ).
Какое наследование без классов?
alkagolik
Заблокирован
16.03.2014, 08:05     Нелогичная работа кода #31
Цитата Сообщение от taras atavin Посмотреть сообщение
Во-первых любой тип - концепт, способ интерпретации байтов,
боян. галимый некомпетентный боян. Тебе сюда

Добавлено через 1 минуту
Цитата Сообщение от taras atavin Посмотреть сообщение
Какое наследование без классов?
наследство от предшественника. Так понятно?. Свойства предшественника, приобретенные по наследству.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2014, 08:05     Нелогичная работа кода #32
Уж кто бы говорил о компетентности, здесь некоторые c++ за c принимают и их же ругают.
alkagolik
Заблокирован
16.03.2014, 08:14     Нелогичная работа кода #33
Цитата Сообщение от taras atavin Посмотреть сообщение
Уж кто бы говорил о компетентности
ага. Привет, Андрей!
korvin_
1699 / 1237 / 186
Регистрация: 28.04.2012
Сообщений: 4,462
16.03.2014, 18:53     Нелогичная работа кода #34
Цитата Сообщение от taras atavin Посмотреть сообщение
А во-вторых класс в программировании - ... как раз тип
Нет, класс — это реализация типа, интерфейс — тип.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2014, 18:59     Нелогичная работа кода #35
Интерфейс - часть класса, такая же, как и реализация.

Добавлено через 1 минуту
alkagolik, как поживают твои галлюцинации?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2014, 19:09     Нелогичная работа кода
Еще ссылки по теме:

Нелогичная работа mouse_event MOUSEEVENTF_MOVE - C++
void Draw() { HDC hdc = GetDC(HWND_DESKTOP); int cx = GetSystemMetrics(SM_CXSCREEN); int cy = GetSystemMetrics(SM_CYSCREEN); ...

Нелогичная работа простейших арифметических операций - Visual Basic .NET
Я не понимаю почему так работает сложение. Dim file3 = New StreamWriter(&quot;3.txt&quot;) For i = 0 To n2 - 1 Dim Sum As...

нелогичная ошибка - C++ Qt
Переопределяю класс QGraphicsPixmapItem. Я не думал что проблемы вообще возникнут в нем... Но возникли, да еще такие ,что у меня нервы...

Работа кода - Assembler
Помогите разобраться как работает код Напишите алгоритм образно Особенно непонятно в сегменте данных in_str и out_str code segment ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DrOffset
6917 / 4110 / 939
Регистрация: 30.01.2014
Сообщений: 6,905
16.03.2014, 19:09     Нелогичная работа кода #36
Устроили тут в теме какую-то вакханалию. Смысл говорить о каких-то абстрактных общих понятиях, когда в стандарте языка черным по белому написано:
9/1
A class is a type. Its name becomes a class-name (9.1) within its scope.
Пора бы уже знать, что С++ не предоставляет идеологически чистого ООП, и не надо пытаться притягивать за уши к нему общие понятия. Хотите обсуждать общие понятия - вон есть целый раздел.
Yandex
Объявления
16.03.2014, 19:09     Нелогичная работа кода
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru