Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107

Пример из книги выдает ошибки

29.08.2018, 10:42. Показов 4606. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться выдает ошибки (если можно по подробнее. Если не трудно):
win XP установлена. А пробую делать в Dev c++ ver 5.11


In function 'int main()':
8 14 [Error] 'SHRT_' was not declared in this scope
9 2 [Error] 'unsignet' was not declared in this scope
11 60 [Error] 'sue' was not declared in this scope


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
// exceed.cpp -
#include <iostream>                    // 
#define ZERO 0                        
#include <climits>                     //
int main ()                            //  //
{
    using namespace std;                 //  
    short sam = SHRT_ MAX;               //  
    unsignet short sue = sam;            //  
           
    cout << "  Sam has " << sam << " dollars and Sue has " << sue;
    cout << " dollar depozit. " << endl
         << " Add $1 to each account." << endl << "Now";
    sam = sam + 1;
    sue = sue + 1;
    cout << " Sam has " << sam << " dollars and Sue has " << sue;
    cout << " Áåäíûé Ñýì. dollras deposited.\nPoor Sam!" << endl; 
    sam = ZERO;
    sue = ZERO;
    cout << " Sam has " << sam << " dollars and Sue has " << sue;
    cout << " dollar depozit. " << endl << " Lucky Sue !" << endl;
    cout << " Take $1 from each account. " << endl << "Now ";
    sam = sam - 1;
    sue = sue - 1;
    cout << " Sam has " << sam << " dollars and Sue has " << sue;
    cout << " dollar depozit. " << endl << " Lucky Sue !" << endl;
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.08.2018, 10:42
Ответы с готовыми решениями:

Пример из книги и выдает ошибку. Почему?
Переписал с книги... и выдает ошибку... Подскажите как исправить... Пишет что не задекларирован QType... # include &lt;iostream&gt; ...

Простой пример из книги. Объяснить, почему код выдает такие результаты
Коллеги, привожу простой пример из книги Страуструппа. #include &lt;iostream.h&gt; #include &lt;conio.h&gt; void f(int a){ ...

Пример с учебника выдаёт ошибки
Здравствуйте, сейчас пытаюсь учить процессы/job-ы и т.д. Вот взял пример с учебника , вроде всё правильно переписал, но выдаёт кучу...

57
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
30.08.2018, 13:42
Студворк — интернет-сервис помощи студентам
Всё настроится, и компилятор найдётся?
1
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107
30.08.2018, 14:28  [ТС]
DrOffset переустановил CodeBlocks проверил на программе

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
#include <iostream>
int main()
{
   int x=2+3;
   std::cout<<x;
   std::cin.get();
   return 0;
}


пишет ошибку

16-разрядная подсистема MS-DOS

D:\c\1.exe
Процессор NTVDM обнаружил недопустимую инструкцию
CS:06fe IP:0103 OP:63 6c 75 64 65 Для завершения приложения нажмите кнопку "Закрыть"

Добавлено через 18 минут
Всем большое спасибо программа CodeBlocks после
установки от
Вот эта версия с компилятором: http://sourceforge.net/project... -setup.exe
заработала.


Кликните здесь для просмотра всего текста
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 <iostream>                    // директива процесса         
#define ZERO 0                         // создает символ ZERO для значения 0
#include <climits>                     // определяет INT_MAX как наибольшее значенте int
int main ()                            //  // заголовок функции
{
    using namespace std;                 //  делает видимым определение
    short sam=SHRT_MAX;               //  иницилизирует переменную максимальным значением
    unsigned short sue = sam;            //  нормально, поскольку переменная cam уже определена
           
    cout << "  Sam has " << sam << " dollars and Sue has " << sue;
    cout << " dollar depozit. " << endl
         << " Add $1 to each account." << endl << "Now";
    sam = sam + 1;
    sue = sue + 1;
    cout << " Sam has " << sam << " dollars and Sue has " << sue;
    cout << " Бедный Сэм. dollras deposited.\nPoor Sam!" << endl; 
    sam = ZERO;
    sue = ZERO;
    cout << " Sam has " << sam << " dollars and Sue has " << sue;
    cout << " dollar depozit. " << endl << " Lucky Sue !" << endl;
    cout << " Take $1 from each account. " << endl << "Now ";
    sam = sam - 1;
    sue = sue - 1;
    cout << " Sam has " << sam << " dollars and Sue has " << sue;
    cout << " dollar depozit. " << endl << " Lucky Sue !" << endl;
    return 0;
}


у меня вопрос если я ее Русифицирую она продолжит работать адекватно?
1
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
30.08.2018, 14:44
Шутник!
Вы сохранили исходный текст в файл D:\c\1.exe?

Добавлено через 10 минут
Цитата Сообщение от Xrom123 Посмотреть сообщение
если я ее Русифицирую она продолжит работать адекватно?
Попробуйте удалить и установить заново.
Если получится и компилятор после этого будет работать, можете поэкспериментировать.
Ведь Вы всегда теперь сможете вернуться к работоспособному варианту.
0
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107
30.08.2018, 19:52  [ТС]
дома установил CodeBlocks win 7 стоит( на ютубе посмотрел как настраивается)

в итоге благодаря вашей помощи все получилось))
сама программа
Кликните здесь для просмотра всего текста
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 <iostream>                    // директива процесса
#define ZERO 0                         // создает символ ZERO для значения 0
#include <climits>                     // определяет INT_MAX как наибольшее значенте int
int main ()                            //  // заголовок функции
{
    setlocale(LC_CTYPE,"Russian"); // русский язык
    using namespace std;                 //  делает видимым определение
    short sam=SHRT_MAX;               //  иницилизирует переменную максимальным значением
    unsigned short sue = sam;            //  нормально, поскольку переменная cam уже определена
 
    cout << "  Sam has " << sam << " dollars and Sue has " << sue;
    cout << " dollar depozit. " << endl
         << " Add $1 to each account." << endl << "Now";
    sam = sam + 1;
    sue = sue + 1;
    cout << " Sam has " << sam << " dollars and Sue has " << sue;
    cout << " Бедный Сэм. dollras deposited.\nPoor Sam!" << endl;
    sam = ZERO;
    sue = ZERO;
    cout << " Sam has " << sam << " dollars and Sue has " << sue;
    cout << " dollar depozit. " << endl << " Lucky Sue !" << endl;
    cout << " Take $1 from each account. " << endl << "Now ";
    sam = sam - 1;
    sue = sue - 1;
    cout << " Sam has " << sam << " dollars and Sue has " << sue;
    cout << " dollar depozit. " << endl << " Lucky Sue !" << endl;
    return 0;
}


результат
Кликните здесь для просмотра всего текста

Sam has 32767 dollars and Sue has 32767 dollar depozit.
Add $1 to each account.
Now Sam has -32768 dollars and Sue has 32768 Бедный Сэм. dollras deposited.
Poor Sam!
Sam has 0 dollars and Sue has 0 dollar depozit.
Lucky Sue !
Take $1 from each account.
Now Sam has -1 dollars and Sue has 65535 dollar depozit.
Lucky Sue !

Process returned 0 (0x0) execution time : 0.210 s
Press any key to continue.



за одно узнал в этой программе
setlocale(LC_CTYPE,"Russian"); // русский язык

всем большое спасибо за помощь
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
30.08.2018, 21:06
На Windows 7 Вы можете установить Microsoft Visual Studio 2017 сразу на русском
https://docs.microsoft.com/en-... rements-vs
0
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107
31.08.2018, 09:14  [ТС]
politoto, спасибо за ссылку я ее за писал на будущее. Пригодиться
Сейчас просто охото что бы были везде одни системы. Что бы хоть, что то более менее изучить.
Пока разбираюсь не могу понять по чему в Win 7 CodeBlocks при
setlocale(LC_CTYPE,"Russian"); // русский язык ПИШЕТ
а Win XP не хочет
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
31.08.2018, 09:40
Я не очень понимаю, при чём тут LC_CTYPE. Смена LC_CTYPE может пригодиться, например, если Вы хотите разбить русский текст на слова, для того, чтобы русские буквы воспринимались как буквы, а не как знаки препинания, цифры или что-нибудь ещё
0
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107
31.08.2018, 12:10  [ТС]
если честно не знаю, но win 7 буквы русские есть. Для win xp решения пока не нашел

Добавлено через 1 час 2 минуты
Если кто то знает как сделать, отображение русского шрифта в консоле win xp подскажите.
уже разные варианты пробовал.

Добавлено через 33 минуты
Нашел решение в интернете для отображения в Win xp Русского языка , в консоли может кому и пригодиться.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[CPP]
#include <iostream>
#include <windows.h>      // для русского языка
#include <iostream>       // для русского языка
#include <cstdio>         // для русского языка
 
 
using namespace std;
 
int main()
{
        SetConsoleCP(1251);     // для русского языка
        SetConsoleOutputCP(1251);   // для русского языка
       cout << "Здравствуй Мир!" << endl;
   return 0;
}
[/CPP]
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
31.08.2018, 12:12
Насколько я помню,
в консоли XP по умолчанию выбран шрифт фиксированного размера, который подходит не для всех кодировок текста.
Обычно я выбирал масштабируемый шрифт ( Lucida что-то там Console, в других версиях консоли Consolas ).
После этого можно переключать кодировку командой CHCP, например на виндовую кириллицу (cp1251):
Code
1
chcp 1251
или на UTF-8.

Можно переключать кодировки и из своей программы виндовыми библиотечными функциями. Где-то на форуме это должно быть в FAQ.
В этом разделе или в низкоуровневом.
0
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107
31.08.2018, 12:31  [ТС]
politoto, да я понимаю что писать так постоянно долго и не продуктивно, но по другому что то не получается.
Если ты знаешь как, покажи на маленькой готовой программе. Я по пробовал написать как ты предложил программа ругается.
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
31.08.2018, 13:21
CHCP - это консольная команда Windows ( и MS-DOS ) для смены кодовой страницы.
Её нужно вводить самому ( или ещё как-нибудь выполнить ) в приглашении командной строки в консольном окне перед тем, как запустить
чужую или свою программу, которая выводит в консоль символы не в той кодировке, которая установлена в консоли.

Например,
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
C:\Users\Default>type %TEMP%\k
кракозябра
 
C:\Users\Default>chcp 1251
Текущая кодовая страница: 1251
 
C:\Users\Default>type %TEMP%\k
кракозябра
 
C:\Users\Default>chcp 65001
Active code page: 65001
 
C:\Users\Default>rem Снова UTF-8
 
C:\Users\Default>type %TEMP%\k
кракозябра
 
C:\Users\Default>
Выше я попросил систему вывести в консоль один и тот же файл, переключая консоль между двумя разными кодировками.

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
C:\Users\Default>chcp /?
Вывод или смена текущего номера кодовой страницы.
 
CHCP [nnn]
 
  nnn   Номер кодовой страницы.
 
Введите CHCP без параметра для вывода текущего номера кодовой страницы.
 
C:\Users\Default>chcp
Текущая кодовая страница: 866
 
C:\Users\Default>chcp 1251
Текущая кодовая страница: 1251
 
C:\Users\Default>
Добавлено через 3 минуты
Если хотите выполнить эту команду из своей программы на Си или С++, это можно сделать с помощью стандартной функции system()

C++
1
system ( "CHCP 1251" );
0
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107
31.08.2018, 13:34  [ТС]
politoto, если вводит самому в консоль тогда, если я правильно понимаю при запуске на разных системах ( в данном случае на Win xp Win 7) то же надо будет это делать постоянно. А в будущем если мне повезет лет так через надцать)))) я напишу программу для кого то другого она выведет не понятные символы? Или я не правильно понял это?
попробовал написать просто ни чего не получилось
C++
1
system ( "CHCP 1251" );
а вот если добавить опять вверху то получается.
C++
1
2
3
4
5
6
#include <climits>                     // для русского языка
#include <windows.h>                   // для русского языка
#include <cstdio>                      // для русского языка
 
а потом
system ( "CHCP 1251" );
но меняется немного отображение. Добавляется (Текущая кодовая страница: 1251)

Кликните здесь для просмотра всего текста

Текущая кодовая страница: 1251
Ворд!

Process returned 0 (0x0) execution time : 0.375 s
Press any key to continue.

1
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
31.08.2018, 13:50
Верно. CHCP нужно скомандовать до того, как писать что-нибудь с русскими буквами в консоль.
0
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107
31.08.2018, 13:53  [ТС]
это как?
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
31.08.2018, 13:54
CHCP - это обычная программа.
Code
1
2
C:\Users\Default>where chcp
C:\Windows\System32\chcp.com
Для переключения кодовых страниц в консоли она пользуется функциями Windows API, которые Вы можете вызвать из своей программы напрямую.
0
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107
31.08.2018, 14:04  [ТС]
Я наверное не правильно сформулировал вопрос.
Как прописать это в программе.
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
31.08.2018, 15:49
С помощью стандартной функции std::system() Вы можете из своей программы выполнить любую команду операционной системы и запустить любую программу, которую можно запустить вручную из проводника, командной строки, меню "Пуск", ярлычка и т.п.
https://en.cppreference.com/w/... ram/system
https://en.cppreference.com/w/c/program/system

Вы хотите узнать какие функции вызывает программа chcp.com?

Добавлено через 1 час 4 минуты
Обсуждение русских букв консоли Windows в Важных темах раздела
Русские шрифты в консоли

Я думаю (не проверял), что CHCP делает примерно так:
https://www.cyberforum.ru/post45498.html
0
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107
02.09.2018, 17:55  [ТС]
спасибо буду вникать
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.09.2018, 17:55

Пример с учебника выдаёт ошибки
Здравствуйте. Есть такая задача( пример):Найти и вывести на печать координаты и значение минимума функции двух переменных f(x, y) =...

Ошибки с работой MessageBox.Show, пример из книги Стиллмен, Грин
После попытки выполнить первый же пример из книги столкнулся с проблемой. Все мои действия: 1. Проджект нью-&gt; Виндовс форм...

Переделал стандартный пример, выдаёт ошибки по типам для ProgressBar1.Position
unit догонялочка; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,...

Inet Explorer при обнаружении ошибки вместо описания ошибки выдает иероглифы
Начал изучение ASP. Inet Explorer при обнаружении ошибки вместо описания ошибки выдает иероглифы... А мне ОЧЕНЬ хотелось бы почитать, что...

Пример из книги
Разбираю книгу по самообучающимся системам. Хочу запустить такой пример: ...


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

Или воспользуйтесь поиском по форуму:
58
Ответ Создать тему
Новые блоги и статьи
BitTorrent (версия 7.11 English) и Меню Настройки
russiannick 15.11.2026
Пункты, отвечающие за отключение обновлений в BitTorrent версии 7. 11 (английской) Options Preferences General Language
Транслитерация текста с кириллицы на латиницу (вариант №4)
Maks 15.11.2026
Что-то я перемудрил с предыдущими версиями, в этот раз сделал всё проще, обратившись к функции "СтрокаЛатиницей" из типового общего модуля "СтроковыеФункцииКлиент". В данной функции нет апострофов,. . .
BitTorrent (версия 4.3.9) и Меню Настройки
russiannick 15.11.2026
В меню Настройки можно отключить автоматическое обновление программы. Карта этого меню приложена ниже. Нужный пункт выделен красным. Сервис Настройки Поведение
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки. Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён". Изменено отображение буквы Й. Добавлена. . .
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru