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

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

Войти
Регистрация
Восстановить пароль
 
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
#1

Классы из Дейтела - C++

30.07.2013, 13:25. Просмотров 787. Ответов 14
Метки нет (Все метки)

Сейчас читаю книгу Дейтела (Как программировать на С++ (5-е издание, 2008) ), читаю главу про классы, там предоставлен такой код:

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
#include "stdafx.h"
#include <clocale>
#include <iostream>
#include <conio.h>
#include <string>
 
using namespace std;
 
class GradeBook
{
public:
    void displayname ( string CourceName ) {
    cout << "Добро пожаловать в GradeBook, " << CourceName << "!" << endl;
}
};
 
int main()
{
    setlocale (0,"");
    string CourceOfName;
    GradeBook myGradeBook;
    getline( cin, CourceOfName );
    cout << endl;
    myGradeBook.displayname( CourceOfName );
    getch();
    return 0;
}
Но когда я ввожу CourceOfName то выводится какая-то несуразица
Например:
Классы из Дейтела

Подскажите, в чём проблема?

Добавлено через 1 минуту
Возможно это из-за того что setlocale не действует на класс?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2013, 13:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Классы из Дейтела (C++):

Из Дейтела (4.20) - C++
Привет всем!!!! Ребята, есть задачка из Дейтела (4.20) для зачета, но совсем в проге не смыслем, послезавтра сдают, кто поможет а? И если...

Пример из Дейтела - C++
Помоготе разобрать пример из Дейтела, #include&lt;iostream&gt; #include&lt;string&gt; using namespce std; MyBook{ public: void...

Самоучитель от Дейтела врет? - C++
Почему в самоучителе по С++ от Дейтела Х, программа, выводящая текст записана так: #include &lt;iostream&gt; int main() { ...

ответы на книгу Дейтела - C++
Здравствуйте! Подскажите,где можно скачать ответы на задачи из учебника Дейтела &quot;Как программировать на С++&quot; 5 издание?

Разбить по файлам пример из Дейтела - C++
Хочу разбить по файлам пример из книги Дейтела. Что куда сохранять!? Пожалуйсто подскажите, тяжело самому... Определение класса GradeBook...

Задача из учебника Дейтела Харви - C++
Задача: используйте одномерный массив для решения слудующей задачи. прочитайте 20 чисел, каждое из которых находится в диапазоне от 10 до...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Valentina
68 / 68 / 3
Регистрация: 13.05.2012
Сообщений: 130
30.07.2013, 14:25 #2
можна вот так
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
#include <clocale>
#include <iostream>
#include <conio.h>
#include <string>
 
using namespace std;
 
class GradeBook
{
public:
    void displayname ( string CourceName ) {
    cout << "Добро пожаловать в GradeBook, " ;
    setlocale(LC_ALL, ".866");
    cout<< CourceName << "!" << endl;
}
};
 
int main()
{
    setlocale (0,"");
    string CourceOfName;
    GradeBook myGradeBook;
    getline( cin, CourceOfName );
    cout << endl;
    myGradeBook.displayname( CourceOfName );
    getch();
    return 0;
}
1
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
30.07.2013, 14:27  [ТС] #3
Спасибо большое, работает
0
Valentina
68 / 68 / 3
Регистрация: 13.05.2012
Сообщений: 130
30.07.2013, 14:32 #4
Цитата Сообщение от Даниил1991 Посмотреть сообщение
Спасибо большое, работает
всегда пожалуйста
0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
30.07.2013, 14:44 #5
А можно и вот так:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
using namespace std;
class GradeBook
{
public:
    void displayname ( string CourceName )
    {
        cout << "Добро пожаловать в GradeBook, " << CourceName << "!" << endl;
    }
};
int main()
{
    system("chcp 1251>0");
    string CourceOfName;
    GradeBook myGradeBook;
    getline( cin, CourceOfName );
    myGradeBook.displayname( CourceOfName );
    system("pause");
    return 0;
}
0
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
30.07.2013, 14:47  [ТС] #6
А в чём прикол
Цитата Сообщение от Ilot Посмотреть сообщение
system("chcp 1251>0");
?

Добавлено через 1 минуту
Не работает такое
0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
30.07.2013, 14:51 #7
Обращение к командной строке. В данном случае обращение к кодовой странице 1251 без вывода сообщения.
Если не работает попробуйте 866.
C++
1
    system("chcp 866>0");
По командам командной строки можете смотреть справку в винде. Там имеется очень много команд.(Это пожалуй единственная полезная информация в этой справке).
1
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
30.07.2013, 15:03  [ТС] #8
Тоже не работает, точнее работает, но на 10%
Т.е. пишется "непонятные символы GradeBook, Вот!

Ну меня в принципе устраивает вариант предложеный Valentina
Ну вам тоже спасибо за то что стараетесь помочь
0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
30.07.2013, 15:09 #9
Даниил1991, в консоли установлен шрифт Lucida?
0
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
30.07.2013, 15:19  [ТС] #10
Нет
Да к чему эти заморочки со шрифтами если можно просто писать setlocale (0,""); (для этого ещё добавлять библиотеку clocale) и не заморачиваться со шрифтами
0
Croessmah
Эксперт CЭксперт С++
13226 / 7498 / 845
Регистрация: 27.09.2012
Сообщений: 18,417
Записей в блоге: 3
Завершенные тесты: 1
30.07.2013, 16:12 #11
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
#include <clocale>
#include <iostream>
#include <conio.h>
#include <string>
#include <Windows.h>
using namespace std;
 
class GradeBook
{
public:
    void displayname ( string CourceName ) {
    cout << "Добро пожаловать в GradeBook, " << CourceName << "!" << endl;
}
};
 
int main()
{
    SetConsoleCP ( 1251 ) ;
     SetConsoleOutputCP ( 1251 ) ;
    string CourceOfName;
    GradeBook myGradeBook;
    getline( cin, CourceOfName );
    cout << endl;
    myGradeBook.displayname( CourceOfName );
    getch();
    return 0;
}
Шрифт Licida Console

Цитата Сообщение от Ilot Посмотреть сообщение
В данном случае обращение к кодовой странице 1251 без вывода сообщения.
Прям вот без вывода?
1
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
30.07.2013, 16:41 #12
Цитата Сообщение от Croessmah Посмотреть сообщение
Прям вот без вывода?
Точно так господин.
С выводом сообщения о кодировке:
C++
1
    system("chcp 1251");
Без такового:
C++
1
    system("chcp 1251>0");
0
Croessmah
Эксперт CЭксперт С++
13226 / 7498 / 845
Регистрация: 27.09.2012
Сообщений: 18,417
Записей в блоге: 3
Завершенные тесты: 1
30.07.2013, 16:42 #13
Цитата Сообщение от Ilot Посмотреть сообщение
Точно так господин.
А вот теперь заходите в текущую папку и узрите файл с именем '0' и со всем выводом!
> - это перенаправление вывода, а не его отключение
2
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
30.07.2013, 16:47 #14
Croessmah, надеюсь сильно бить не будете? Я всего лишь только учусь, многого могу не знать...
0
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
30.07.2013, 16:55 #15
C++
1
system("chcp 1251>nul");
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2013, 16:55
Привет! Вот еще темы с ответами:

Где найти примеры задач из книги Дейтела по C++ - C++
Скачал книгу Дейтела на C++ не могу найти примеры задач, мб есть у кого?

Не работает программа из книги Дейтела "Как программировать на с++" - C++
Помогите, пожалуйста, решить проблему. Программа из раздела книги &quot;Отделение интерфейса от реализации&quot;. При компиляции(использую visual c++...

Задача из книги Дейтела "Шахматная доска" - C++
В задаче использовать управляющие структуры(лог.операции, циклы) можно массивы. Остального я пока не знаю))

Задача из книги Дейтела "Квадрат" - C++
Здравствуйте,В задаче использовать управляющие структуры(лог.операции, циклы) можно массивы. Остального я пока не знаю))


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.07.2013, 16:55
Ответ Создать тему
Опции темы

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