С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Kopmec
0 / 0 / 0
Регистрация: 13.08.2011
Сообщений: 31
1

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

14.08.2011, 19:15. Просмотров 1643. Ответов 30
Метки нет (Все метки)

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 в командную строку нечего не происходит.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2011, 19:15
Ответы с готовыми решениями:

обьясните пожалуйста!
1111 = 15 &amp; 1001 = 9 1001 =...

Обьясните пожалуйста
struct Test { void test(); }; int main() { Test *ptr =...

обьясните пожалуйста код
#include&lt;cstdio&gt; #include&lt;cstdlib&gt; #include&lt;iostream&gt; #include&lt;string.h&gt;...

Я новичок, обьясните пожалуйста ошибки
Почитал учебники. Скачал 6 вижуал. забабахал вот такой код, а программа даж не...

Пожалуйста обьясните мне битовые поля.
Пожалуйста обьясните мне битовые поля. НЕ могу понять зачем они нужны,...

30
jafrey kerns
5 / 5 / 0
Регистрация: 12.08.2011
Сообщений: 24
14.08.2011, 19:40 2
Скомпилировал в MS VS 2010Express. Все работает, только идет в одну строку и проблемы русской кодировкой. После подсказок форума, ябы сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*Эта программа преобразует галлоноы в литрыс помощью 
чисел с плавающей точкой.*/
 
#include <iostream>
#include <locale>
 
using namespace std;
int  main()
{
     setlocale(LC_ALL,"Rus");
 
     double gallons,liters;
     cout<<"Введите количество галлонов: \n";
     cin >> gallons; // Ввод данных галлонов
     liters= gallons * 3.7854; //Преобразование в литры.
     cout <<"Литров: "<<liters<<"\n";
     return 0;
}
1
rooot
4 / 2 / 2
Регистрация: 20.04.2011
Сообщений: 9
14.08.2011, 19:41 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <conio.h>
using namespace std;
 
int  main()
{
     setlocale(LC_ALL, "Russian");
     double gallons,liters;
     cout<<"Введите количество галлонов:";
     cin >> gallons; " Ввод данных галлонов: ";
     liters= gallons * 3.7854; //Преобразование в литры.
     cout <<"Литров:"<<liters;
     getche()
     return 0;
}
0
Сыроежка
Заблокирован
14.08.2011, 19:45 4
Цитата Сообщение от Kopmec Посмотреть сообщение
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 в командную строку нечего не происходит.
У вас в строке

C++
1
cin >> gallons; " Ввод данных галлонов: ";
имеется ничего не делающее выражение " Ввод данных галлонов: "; Вообще-то, компилятор обычно об этом сообщает в предупреждениях. Я не знаю, зачем вы написали этот строковый литерал в качестве отдельного предложения.

Что касается того, что программа ничего не делает, так вам надо в конце программы поставить задержку, иначе она быстро завершает свою работу. Например, можете перед return написать cin.get();
1
rooot
4 / 2 / 2
Регистрация: 20.04.2011
Сообщений: 9
14.08.2011, 19:47 5
А при вводе числа все работает, просто компилятор после выполнения кода закрывает программу, вот для этого и необходим getche() или можно другими способами.
1
Kastaneda
Jesus loves me
Эксперт С++
4950 / 3027 / 347
Регистрация: 12.12.2009
Сообщений: 7,630
Записей в блоге: 2
Завершенные тесты: 1
14.08.2011, 19:53 6
Нет под рукой компилятора, чтобы проверить свое предположение, может быть проблема в следующем:
На месте строки:
C++
1
" Ввод данных галлонов: ";
будет подставлен указатель на эту строку, т.е. какое-то 4-х байтовое число, как оно скомпилируется я не знаю (был бы компилятор, я бы проверил) и когда дело доходит до исполнения ассемблерного кода эти 4 байта могут быть восприняты как инструкция процессора, которая и приводит к зависанию программы (например может быть jmp куда-нибудь, где продолжается выполнение кода, но результата этой работы просто не видно).
В написанном не уверен, но кто его знает
1
Сыроежка
Заблокирован
14.08.2011, 19:55 7
Цитата Сообщение от Kastaneda Посмотреть сообщение
Нет под рукой компилятора, чтобы проверить свое предположение, может быть проблема в следующем:
На месте строки:
C++
1
" Ввод данных галлонов: ";
будет подставлен указатель на эту строку, т.е. какое-то 4-х байтовое число, как оно скомпилируется я не знаю (был бы компилятор, я бы проверил) и когда дело доходит до исполнения ассемблерного кода эти 4 байта могут быть восприняты как инструкция процессора, которая и приводит к зависанию программы (например может быть jmp куда-нибудь, где продолжается выполнение кода, но результата этой работы просто не видно).
В написанном не уверен, но кто его знает
Не фантазируйте! Будет просто предупреждение на этапе компиляции, что это выражение ничего не делает. Только и всего.
0
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
14.08.2011, 20:11 8
Цитата Сообщение от Сыроежка Посмотреть сообщение
Будет просто предупреждение на этапе компиляции, что это выражение ничего не делает.
Ну это зависит от компилятора. У меня gcc 4.4.1 TDM-2 mingw молчит как рыба
0
Kopmec
0 / 0 / 0
Регистрация: 13.08.2011
Сообщений: 31
14.08.2011, 20:12  [ТС] 9
Цитата Сообщение от Сыроежка Посмотреть сообщение
У вас в строке

C++
1
cin >> gallons; " Ввод данных галлонов: ";
имеется ничего не делающее выражение " Ввод данных галлонов: "; Вообще-то, компилятор обычно об этом сообщает в предупреждениях. Я не знаю, зачем вы написали этот строковый литерал в качестве отдельного предложения.

Что касается того, что программа ничего не делает, так вам надо в конце программы поставить задержку, иначе она быстро завершает свою работу. Например, можете перед return написать cin.get();
Сори я просто ошибся в написании там пишеться "Ввод данных от пользователя"
0
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
14.08.2011, 20:15 10
Kopmec, да имелось ввиду что между cin >> gallons и "Ввод данных от пользователя" стоит точка с запятой, которая терминирует инструкцию ввода галлонов, и "Ввод данных от пользователя" рассматривается как самостоятельная бессмысленная инструкция должно было, наверное, быть так:

C++
1
2
cin >> gallons;
cout << "Ввод данных от пользователя" ;
1
Kopmec
0 / 0 / 0
Регистрация: 13.08.2011
Сообщений: 31
14.08.2011, 20:18  [ТС] 11
Короче я так понял что программа работает только при вводе числа 1 она закрываеться уже с полученым результатом 3.7854 но если так можно ли както замедлить закрывание командной строки чтобы она закрывалась хотябы через секунды 2 чтобы точно убедиться в правильно работе и вычесления
0
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
14.08.2011, 20:19 12
Kopmec, есть такая вещь, как поиск и ПРИКРЕПЛЁННЫЕ ТЕМЫ. Вы их смотрели? Например: http://www.cyberforum.ru/cpp-beginners/thread10807.html
1
Kopmec
0 / 0 / 0
Регистрация: 13.08.2011
Сообщений: 31
14.08.2011, 20:23  [ТС] 13
Цитата Сообщение от talis Посмотреть сообщение
Kopmec, есть такая вещь, как поиск и ПРИКРЕПЛЁННЫЕ ТЕМЫ. Вы их смотрели? Например: http://www.cyberforum.ru/cpp-beginners/thread10807.html
да я читал по этой ссылки я про другое при выполнении открываеться командная строка ввожу 1 и нажимаю на интер но я неуспеваю просмотреть полученый результат
0
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
14.08.2011, 20:27 14
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;
}
Держите, и удачи вам.

Не по теме:

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

1
Kopmec
0 / 0 / 0
Регистрация: 13.08.2011
Сообщений: 31
14.08.2011, 20:31  [ТС] 15
Я хочу узнать можно ли сделать чтоб при вводе 1 у меня не закрылась командная строка а показывала полученый результат

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int  main()
{
     double gallons,liters;
     cout<<
     cin >> gallons; // Ввод данных от пользователя.
     liters= gallons * 3.7854; 
     cout <<"Литров:"<<liters;
     cin.get();
     return 0;
}
что нужно чтоб затормозить полученый результат после считывания а не при вводе числа1
0
jafrey kerns
5 / 5 / 0
Регистрация: 12.08.2011
Сообщений: 24
14.08.2011, 20:40 16
Если что-то вводится с клавиатуры, одного cin.get() недостаточно.
C++
1
2
3
cin.get();
cin.get():
return 0;
1
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
14.08.2011, 20:44 17
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int  main()
{
     double gallons, liters;
     cout << "Enter gallons:\n>";
     cin >> gallons; // Ввод данных от пользователя.
     liters = gallons * 3.7854; 
     cout << "Liters: " << liters;
 
     getch();
 
     return 0;
}
1
Kopmec
0 / 0 / 0
Регистрация: 13.08.2011
Сообщений: 31
14.08.2011, 20:51  [ТС] 18
Цитата Сообщение от 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;
}
Держите, и удачи вам.

Не по теме:

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

во спасибо об этом я и говорил
┬тхфшЄх ъюышўхёЄтю урыыюэют:1
╦шЄЁют:3.7854

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdlib.h> // system()
#include <stdio.h>  // getchar()
#include <iostream>
 
using namespace std;
int  main()
{
     double gallons,liters;
     cout<<"Ââåäèòå êîëè÷åñòâî ГЈГ*ëëîГ*îâ:";
     cin >> gallons; " Ââîä Г¤Г*Г*Г*ûõ îò ïîëüçîâГ*òåëÿ: ";
     liters= gallons * 3.7854; //ÏðåîáðГ*çîâГ*Г*ГЁГҐ Гў ëèòðû.
     cout <<"Ëèòðîâ:"<<liters;
     system( "pause > nul" );
     getchar ();
     return 0;
}
огромное спасибо если ещё не надоел есть вопросик можно ли перевести вот эти ероглимы
┬тхфшЄх ъюышўхёЄтю урыыюэют:1 -здесь как я понял написано-"Введите количество галонов"
╦шЄЁют:3.7854 -а здесь слово "Литров" можно ли зделать чтоб сразу писало на нормальном языке
0
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
14.08.2011, 20:53 19
вообще, setlocale(); но у меня она так и не заработала. в идеале - сохраняйте исходный файл в DOS-866 и компилируйте в родной досовой кодировке. Или перед запуском своей программы выполняйте программу chcp 1251:

Bash
1
2
chcp 1251
test.exe
1
jafrey kerns
5 / 5 / 0
Регистрация: 12.08.2011
Сообщений: 24
14.08.2011, 21:01 20
Для вывода нормального русского текста подключите библиотеку

#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");
1
14.08.2011, 21:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2011, 21:01

Обьясните пожалуйста небольшой кусок кода
Добрый день. Написал программу списка, но не совсем понимаю работу одного...

Обьясните пожалуйста , что значат эти строки)
1)#include &lt;vcl.h&gt; #pragma hdrstop USEFORM(&quot;cursach.cpp&quot;, Form1); WINAPI...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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