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

Обьясните пожалуйста - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Kopmec
 Аватар для Kopmec
0 / 0 / 0
Регистрация: 13.08.2011
Сообщений: 31
14.08.2011, 19:15     Обьясните пожалуйста #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*Эта программа преобразует галлоноы в литрыс помощью 
чисел с плавающей точкой.*/
 
#include <iostream>
using namespace std;
int  main()
{
     double gallons,liters;
     cout<<"Введите количество галлонов:";
     cin >> gallons; " Ввод данных галлонов: ";
     liters= gallons * 3.7854; //Преобразование в литры.
     cout <<"Литров:"<<liters;
     return 0;
}
Скомпируйте и выполните эту программу.На приглашение указать количество галонов
введите число 1. В качестве результата программа должна отобразить 3.7854 литра.
Помачите разобраться если при выполнении этой программы появляеться командная строка
вот с такой писаниной -┬тхфшЄх ъюышўхёЄтю урыыюэют:
При вводе числа 1 в командную строку нечего не происходит.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2011, 19:15     Обьясните пожалуйста
Посмотрите здесь:

C++ Я новичок, обьясните пожалуйста ошибки
C++ Пожалуйста обьясните мне битовые поля.
обьясните пожалуйста код C++
C++ Обьясните пожалуйста
C++ обьясните пожалуйста!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kopmec
 Аватар для Kopmec
0 / 0 / 0
Регистрация: 13.08.2011
Сообщений: 31
14.08.2011, 21:33  [ТС]     Обьясните пожалуйста #21
Цитата Сообщение от jafrey kerns Посмотреть сообщение
Для вывода нормального русского текста подключите библиотеку

#include <locale>


а в функции main добавте

setlocale(LC_ALL,"Rus");

Добавлено через 1 минуту
Пример:

C++
1
2
3
4
5
6
7
8
#include <iostream>
#include <locale>
#include <cmath>
#include <conio.h> // для getch()
 
int main ()
{
    setlocale(LC_ALL,"Rus");
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*ГќГІГ* ïðîãðГ*ììГ* ïðåîáðГ*çóåò ГЈГ*ëëîГ*îû Гў ëèòðûñ ïîìîùüþ 
Г·ГЁГ±ГҐГ« Г± ГЇГ«Г*ГўГ*ГѕГ№ГҐГ© òî÷êîé.*/
#include <locale>
#include <stdlib.h> // system()
#include <stdio.h>  // getchar()
#include <iostream>
 
using namespace std;
int  main()
{
     setlocale(LC_ALL,"Rus");
     double gallons,liters;
     cout<<"Ââåäèòå êîëè÷åñòâî ГЈГ*ëëîГ*îâ:";
     cin >> gallons; " Ââîä Г¤Г*Г*Г*ûõ îò ïîëüçîâГ*òåëÿ: ";
     liters= gallons * 3.7854; //ÏðåîáðГ*çîâГ*Г*ГЁГҐ Гў ëèòðû.
     cout <<"Ëèòðîâ:"<<liters;
     system( "pause > nul" );
    
     getchar ();
     return 0;
}
непомагло
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
14.08.2011, 21:46     Обьясните пожалуйста #22
Цитата Сообщение от talis Посмотреть сообщение
в идеале - сохраняйте исходный файл в DOS-866 и компилируйте в родной досовой кодировке. Или перед запуском своей программы выполняйте программу chcp 1251:
Bash
1
2
chcp 1251
test.exe
тогда так
Kopmec
 Аватар для Kopmec
0 / 0 / 0
Регистрация: 13.08.2011
Сообщений: 31
14.08.2011, 22:17  [ТС]     Обьясните пожалуйста #23
Цитата Сообщение от talis Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdlib.h> // system()
#include <conio.h>  // getch()
#include <stdio.h>  // getchar()
 
int main()
{
    /* ваш код тут */
 
 
    system( "pause > nul" );
 
    //или
    getch();
 
    //или
    getchar();
 
    return 0;
}
Держите, и удачи вам.

Не по теме:

То ли я устаю, то ли люди вокруг меняются...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*ГќГІГ* ïðîãðГ*ììГ* ïðåîáðГ*çóåò ГЈГ*ëëîГ*îû Гў ëèòðûñ ïîìîùüþ 
Г·ГЁГ±ГҐГ« Г± ГЇГ«Г*ГўГ*ГѕГ№ГҐГ© òî÷êîé.*/
#include <iostream>
using namespace std;
int  main()
{
     double gallons,liters;
     cout<<"Ââåäèòå êîëè÷åñòâî ГЈГ*ëëîГ*îâ:";
     cin >> gallons; " Ââîä Г¤Г*Г*Г*ûõ îò ïîëüçîâГ*òåëÿ: ";
     liters= gallons * 3.7854; //ÏðåîáðГ*çîâГ*Г*ГЁГҐ Гў ëèòðû.
     cout <<"Ëèòðîâ:"<<liters;
     cin.get();
     cin.get();
     return 0;
}
эта версия полегче

Добавлено через 30 минут
Подскажите как первести командную строку на нормальный язык
пишет ероглифы - ┬тхфшЄх ъюышўхёЄтю урыыюэют:1
╦шЄЁют:3.7854



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*ГќГІГ* ïðîãðГ*ììГ* ïðåîáðГ*çóåò ГЈГ*ëëîГ*îû Гў ëèòðûñ ïîìîùüþ 
Г·ГЁГ±ГҐГ« Г± ГЇГ«Г*ГўГ*ГѕГ№ГҐГ© òî÷êîé.*/
#include <iostream>
using namespace std;
int  main()
{
     double gallons,liters;
     cout<<"Ââåäèòå êîëè÷åñòâî ГЈГ*ëëîГ*îâ:";
     cin >> gallons; " Ââîä Г¤Г*Г*Г*ûõ îò ïîëüçîâГ*òåëÿ: ";
     liters= gallons * 3.7854; //ÏðåîáðГ*çîâГ*Г*ГЁГҐ Гў ëèòðû.
     cout <<"Ëèòðîâ:"<<liters;
     cin.get();
     cin.get();
     return 0;
}
пробовал так неполучаеться

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*ГќГІГ* ïðîãðГ*ììГ* ïðåîáðГ*çóåò ГЈГ*ëëîГ*îû Гў ëèòðûñ ïîìîùüþ 
Г·ГЁГ±ГҐГ« Г± ГЇГ«Г*ГўГ*ГѕГ№ГҐГ© òî÷êîé.*/
#include <iostream>
#include <locale>
#include <cmath>
#include <stdlib.h> // system()
#include <stdio.h>  // getchar()
using namespace std;
int  main()
{   
     setlocale(LC_ALL,"Rus");
     double gallons,liters;
     cout<<"Ââåäèòå êîëè÷åñòâî ГЈГ*ëëîГ*îâ:";
     cin >> gallons; " Ââîä Г¤Г*Г*Г*ûõ îò ïîëüçîâГ*òåëÿ: ";
     liters= gallons * 3.7854; //ÏðåîáðГ*çîâГ*Г*ГЁГҐ Гў ëèòðû.
     cout <<"Ëèòðîâ:"<<liters;
     system( "pause > nul" );
     getchar ();
     return 0;
}
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
14.08.2011, 22:21     Обьясните пожалуйста #24
Kopmec, без обид - выспитесь, а завтра начните на свежую голову

Цитата Сообщение от Kopmec Посмотреть сообщение
C++
1
2
3
int  main()
{    setlocale(
     double gallons,liters;
Что это такое?

Напишите, как советовал jafrey kerns:

C++
1
setlocale(LC_ALL,"Rus");
Kopmec
 Аватар для Kopmec
0 / 0 / 0
Регистрация: 13.08.2011
Сообщений: 31
14.08.2011, 22:26  [ТС]     Обьясните пожалуйста #25
Цитата Сообщение от talis Посмотреть сообщение
Kopmec, без обид - выспитесь, а завтра начните на свежую голову



Что это такое?

Напишите, как советовал jafrey kerns:

C++
1
setlocale(LC_ALL,"Rus");
в компиляторе написано все правильно просто пока перекидывал сюда по дароге нечаянно стер и незаметил выше исправил пример
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
14.08.2011, 22:31     Обьясните пожалуйста #26
Kopmec, не знаю. Я уже писал, что так и не смог заставить её работать под своим компилятором в винде (gcc 4.4.1 tdm-2 mingw). Варианта 2: либо сохраняйте файл в кодировке командной строки (а именно DOS-866), либо ставьте в консоли шрифт Lucida Console и перед выполнением своей программы смените кодовую страницу консоли программой chcp, указав в качестве параметра 1251 - номер русской кодовой страницы windows. Например, запускайте bat-скриптом:

Bash
1
2
chcp 1251
text.exe
Ничего другого я вам посоветовать не могу.
jafrey kerns
5 / 5 / 0
Регистрация: 12.08.2011
Сообщений: 24
14.08.2011, 22:39     Обьясните пожалуйста #27
Проверил комбинации:
библиотеки С++:
1)
#include<locale>
...
setlocale(LC_ALL,"Rus");

2)
#include<locale>
...
setlocale(LC_ALL,"Russian");

библиотеки С:
3)#include<locale.h>
...
setlocale(LC_ALL,"Rus");

4)
#include<locale.h>
...
setlocale(LC_ALL,"Russian");

все дают нормальный русский текст. Проверял MS VisualStudio 2010Express, первые две точно работают в MS VS2008Expres(проверял на неделе на работе).
Kopmec
 Аватар для Kopmec
0 / 0 / 0
Регистрация: 13.08.2011
Сообщений: 31
14.08.2011, 23:02  [ТС]     Обьясните пожалуйста #28
Цитата Сообщение от jafrey kerns Посмотреть сообщение
Проверил комбинации:
библиотеки С++:
1)
#include<locale>
...
setlocale(LC_ALL,"Rus");

2)
#include<locale>
...
setlocale(LC_ALL,"Russian");

библиотеки С:
3)#include<locale.h>
...
setlocale(LC_ALL,"Rus");

4)
#include<locale.h>
...
setlocale(LC_ALL,"Russian");

все дают нормальный русский текст. Проверял MS VisualStudio 2010Express, первые две точно работают в MS VS2008Expres(проверял на неделе на работе).
попробовал через все непомагло может неподдерживает мой компилятор Dev-C++ версии 4.9.9.2
jafrey kerns
5 / 5 / 0
Регистрация: 12.08.2011
Сообщений: 24
14.08.2011, 23:12     Обьясните пожалуйста #29
На первой странице форума С/С++ есть тема "русские шрифты в консоли", может какой-то вариант подойдет вот ссылка Русские шрифты в консоли
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
14.08.2011, 23:14     Обьясните пожалуйста #30
Kopmec, программируйте и учите английский язык, русский язык в программе это не главное
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2011, 23:29     Обьясните пожалуйста
Еще ссылки по теме:

Народ, обьясните пожалуйста человеческим языком задание C++
C++ Обьясните пожалуйста небольшой кусок кода

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

Или воспользуйтесь поиском по форуму:
Kopmec
 Аватар для Kopmec
0 / 0 / 0
Регистрация: 13.08.2011
Сообщений: 31
14.08.2011, 23:29  [ТС]     Обьясните пожалуйста #31
Цитата Сообщение от jafrey kerns Посмотреть сообщение
На первой странице форума С/С++ есть тема "русские шрифты в консоли", может какой-то вариант подойдет вот ссылка Русские шрифты в консоли
спасибо большое нашёл решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*ГќГІГ* ïðîãðГ*ììГ* ïðåîáðГ*çóåò ГЈГ*ëëîГ*îû Гў ëèòðûñ ïîìîùüþ 
Г·ГЁГ±ГҐГ« Г± ГЇГ«Г*ГўГ*ГѕГ№ГҐГ© òî÷êîé.*/
#include <windows.h>
#include <iostream>
using namespace std;
int  main()
{
     SetConsoleCP(1251);
     SetConsoleOutputCP(1251);
     double gallons,liters;
     cout<<"Ââåäèòå êîëè÷åñòâî ГЈГ*ëëîГ*îâ:";
     cin >> gallons; " Ââîä Г¤Г*Г*Г*ûõ îò ïîëüçîâГ*òåëÿ: ";
     liters= gallons * 3.7854; //ÏðåîáðГ*çîâГ*Г*ГЁГҐ Гў ëèòðû.
     cout <<"Ëèòðîâ:"<<liters;
     cin.get();
     cin.get();
     return 0;
}
Введите количество галлонов:1
Литров:3.7854 (помогло теперь все впорядке)

вот решение
1. установить вручную шрифт Lucida Console в свойствах окна консоли
и запомнить это для всех окон с этим именем
2. записать в начале программы строку
#include <windows.h>
3. записать в начале функции main ( после строки с символом { ) две следующих строки
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Yandex
Объявления
14.08.2011, 23:29     Обьясните пожалуйста
Ответ Создать тему
Опции темы

Текущее время: 09:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru