Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Помогите с C++!

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Помогите с C++!
Имя
Сообщение << Старые топики   Новые топики >>
Помогите с C++! - 2010-02-07 18:59:28.633333   
BlackAngElf

Сообщений: 57
Оценки: 0
Присоединился: 2009-11-10 12:38:19.423333
Написал консольную прогу, которая делит вводимое число на 2:
#include <stdio.h>
#include <conio.h>
int main()
{
int chislo;
float summ;

printf("Vvedi chislo: ");
scanf("%i", &chislo);
summ = chislo/2;
printf("%100.2f\n", summ);
getch();
}

1. Как сделать чтобы вволить русский текст?
2. Почему когда я ввожу нечетное число, например 365, он вместо 182.5 пишет просто 182?
Post #: 1
RE: Помогите с C++! - 2010-02-07 19:09:37.426666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
1. Гугл. Даже по самому тупому запросу даст ответ.
2. Читай основы языка Си в книжках.

Выбирай:
summ = chislo / 2.0;
summ = (double)chislo / 2;
summ = chislo / (double)2;
summ = (double)chislo / (double)2;
и т.д.

И вообще для таких вопросов есть отдельная ветка.

P.S. А почему не %d спецификация в scanf?
Post #: 2
RE: Помогите с C++! - 2010-02-07 19:15:47.280000   
BlackAngElf

Сообщений: 57
Оценки: 0
Присоединился: 2009-11-10 12:38:19.423333
1.Нда, это я потупил)
2.Я только сегодня открыл книжку) самые основы)
3.Выбрал, спасибо)
4.см. 2)
Post #: 3
RE: Помогите с C++! - 2010-02-07 19:33:45.663333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Молодец, действуй :).

Радует, что кто-то начинает с основ, а не с того "как взломать сервер майкрософта" :-D

По поводу п2. Так происходит потому, что у тебя оба операнда целочисленные. Поэтому выполняется целочисленное деление и потом результат заносится в переменную. Если хотя-бы один из операндов будет float или double - то все остальные операнды тоже будут приведены к типу double.
Post #: 4
RE: Помогите с C++! - 2010-02-07 19:49:51.113333   
BlackAngElf

Сообщений: 57
Оценки: 0
Присоединился: 2009-11-10 12:38:19.423333
понял)
но вот проблема с шрифтом осталась. я полазил по гуглу, но только ушел в даун) нашел несколько примеров, у меня ни один не работает, плюс нашел куски кода вроде
quote:

cout&lt;&lt;Rus(" Русский ")&lt;&lt;endl;
) я что, на какомто кривом с++ пишу? что такое это cout<< и <<endl ?
Post #: 5
RE: Помогите с C++! - 2010-02-07 21:07:04.103333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Если спрашиваешь про эффективность какого-то решения, например функции Rus, то приводи полный код.

А вообще не надо никаких костылей с CharToOem и прочими api. Достаточно сделать (для MSVS) setlocale( LC_ALL, "" ); вначале программы.
Post #: 6
RE: Помогите с C++! - 2010-02-13 02:05:48.313333   
YUE

Сообщений: 24
Оценки: 0
Присоединился: 2009-05-28 16:34:12.283333
если компилируешь в Мелкософт студии тогда добавь
#include <windows.h>

а в функции main() сразу до объявления переменных напиши такое
SetConsoleCP(1251);

SetConsoleOutputCP(1251);

и наконец когда запустишь, в свойствах самого ДОС'овского окна выберешь один из двух предлагаемых шрифтов,
(да простит меня дядя бил, по моему шрифт "люсильда" называется)

P.S. все неточности в описании процесса списываю на склероз
Post #: 7
RE: Помогите с C++! - 2010-02-13 12:35:31.940000   
Xaduw

Сообщений: 34
Оценки: 0
Присоединился: 2009-11-16 17:22:05.396666
ПРошу
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; int main() { float chislo; //тут сматри поменяли инт на флоат float summ; setlocale(0,"");// ето позволяет писать руским printf("Введите число "); scanf("%f", &chislo); //тут вместо i поставили F summ = chislo/2; printf("%100.2f\n", summ); getch(); }
Post #: 8
RE: Помогите с C++! - 2010-02-14 15:59:10.030000   
BlackAngElf

Сообщений: 57
Оценки: 0
Присоединился: 2009-11-10 12:38:19.423333
YUE спасибо, все офигенски заработало)
Xaduw неа, чет не пошло(
Post #: 9
RE: Помогите с C++! - 2010-02-15 00:46:55.200000   
tеstеr

Сообщений: 377
Оценки: -46
Присоединился: 2008-02-08 17:56:40.563333
Чтобы начать писать "по-русски" нужно исходный код передавать компилятору в кодировке, в которой он будет выводиться на консоль.
Т.е. в cp866.

Я когда был на 2-м курсе, постоянно писал консольные проги в студии, а исходный код при этом хранится в UTF-8 (как настроить студию таком образом чтобы сорцы создавались в cp866 я не понял). Поэтому я сделал так:
1. Написал консольную программу, которая переводит любой текстовый файл из UTF-8 в cp866.
2. Написал консольную программу, которая переводит любой текстовый файл из cp866 в UTF-8.
3. В студии в свойствах проекта есть "Pre build action", и "Post build action".
В "Pre build action" я вставлял батник, который для каждого моего файлика (*.h, *.cpp, *.c) вызывал перекодровку в cp866 (для этого использовал цикл FOR)
В "Post build action" декодировал все обратно.

Тут один неудобный момент - файлы изменялись каждый раз, поэтому студия выкидывала предумпеждение что они изменились и надо их обновить. Но достаточно один раз поставить галочку "Больше не спрашивать" и это предупреждение исчезает.

Можешь пойти по этому пути.

Только что до меня дошло - был более простой способ.
В свойствах проекта есть поле куда можно ввести команду для запуска программы (когда нажимаешь Run будет вызывать она). Так вот туда вместо
/release/main.exe можно прописать имя батника, в котором просто будет устанавливаться нужна кодовая страница.
Например (для создания консоли с windows-1251 делаем так)
1. создаем батник release.bat, в нём пишем:
=============
CHCP 1251
main.exe
=============
2. Помещаем батник в директорию в которую билдится программа.
3. В свойствах проекта меняем строку запуска программы на строку запуска батника и наслаждаемся удобной отладкой (в нужной кодировке).
4. Перед финальным релизом кодируем исходники в cp866 и собираем финальный билд, который будем показывать преподу.

Вот другие популярные в нашей стране коды и кодовые страницы (это для команды CHCP):
866 cp866
1251 windows-1251
65001 utf-8
Post #: 10
RE: Помогите с C++! - 2010-03-19 18:54:47.970000   
BlackAngElf

Сообщений: 57
Оценки: 0
Присоединился: 2009-11-10 12:38:19.423333
А вот если , например я хочу написать "игру". Гамер вводит какую то команду, и как сделать чтобы рандомом выводилось либо "получилось" либо "не получилось"???
Post #: 11
RE: Помогите с C++! - 2010-03-19 19:01:10.506666   
Zmaster

Сообщений: 930
Оценки: 0
Присоединился: 2007-02-09 19:02:43.500000
quote:

Читай основы языка Си в книжках

_SaZ_ тебе сказал уже. И не спрашивай больше такого… Кодер блин…
Post #: 12
RE: Помогите с C++! - 2010-03-19 19:01:56.486666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Как же вы зае… кхм… надоели со своими "я хочу написать …, как сделать …"
Post #: 13
RE: Помогите с C++! - 2010-03-19 19:02:48.400000   
BlackAngElf

Сообщений: 57
Оценки: 0
Присоединился: 2009-11-10 12:38:19.423333
То есть помощи не ждать?)
Post #: 14
RE: Помогите с C++! - 2010-03-19 19:10:16.166666   
Zmaster

Сообщений: 930
Оценки: 0
Присоединился: 2007-02-09 19:02:43.500000
Ты задаешь глупые вопросы. Для тебя язык программирования это набор операторов, с помощью которых можно что-либо сделать. Ты не знаешь элементарного (как работает комьютер, что такое память, стек, как с ними работать и прочее), а уже лезешь неизвестно куда.
Post #: 15
RE: Помогите с C++! - 2010-03-19 19:11:58.263333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
quote:

ORIGINAL: BlackAngElf
То есть помощи не ждать?)

Мы можем лишь показать дверь, а войти ты должен будешь сам.
Post #: 16
RE: Помогите с C++! - 2010-03-19 19:13:46.186666   
BlackAngElf

Сообщений: 57
Оценки: 0
Присоединился: 2009-11-10 12:38:19.423333
Ну так покажи!)
P.S. Я даже знаю, что за дверь) Сцылка на гугол)
Post #: 17
RE: Помогите с C++! - 2010-03-19 19:29:50.316666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Давай, как с маленьким с тобой…

Тебе захотелось построить дом из конструктора (написать свою прогу), и ты даже способен это сделать… но есть один маааленький нюанс, ты не знаешь, как выглядят детали для построения дома. И ты спрашиваешь, из чего строить. Т.е. нам надо будет тебе с нуля объяснять, какие есть детали и как их складывать вместе. А эта информация есть везде, достаточно почитать любую книгу по этой теме. Но тебе лень.
И совсем другое дело, если бы ты задавал вопросы типа "вот у меня есть такие-то кубики, я их сложил так, но боюсь, что конструкция получится неустойчивой", и выглядеть они будут "как лучше сделать", а не "как сделать".

Для начала попробуй описать словами алгоритм того, что ты хочешь сделать. например, программы удаляющей файлы:

1. Спросить у пользователя имя файла, который нужно удалить
2. Попробовать найти этот файл.
3. Если файл не найден - вывести сообщение об ошибке и перейти к п.6
4. Удалить файл.
5. Если файл не удаляется - вывести сообщение об ошибке и перейти к п.6
6. Спросить у пользователя, хочет ли он удалить ещё один файл.
7. Если "да", то перейти к п.1, иначе к п.8
8. Закрыть программу.
Post #: 18
RE: Помогите с C++! - 2010-03-19 22:42:42.670000   
Crazy.C

Сообщений: 14
Оценки: 0
Присоединился: 2010-01-04 17:42:28.933333
quote:

ORIGINAL: BlackAngElf

А вот если , например я хочу написать "игру". Гамер вводит какую то команду, и как сделать чтобы рандомом выводилось либо "получилось" либо "не получилось"???


С какой-то стороны ты сам отвечаешь на свой вопрос(чтобы рандомом выводилось), т.е. используй функцию rand.
Судя по тому, что изучение началось недавно, то я бы не советовал нацеливаться на кодинг игр с использованием OpenGL через месяц обучения(согласись, ты такую задачу перед собой ведь поставил) )))
Ну а так. по функции rand задавай вопросы гуглу.
Тебе впадлу читать и искать - нам впадлу отвечать и помогать.

quote:

ORIGINAL: Zmaster

quote:

Читай основы языка Си в книжках

_SaZ_ тебе сказал уже. И не спрашивай больше такого… Кодер блин…


Полностью согласен )))

quote:

ORIGINAL: BlackAngElf

То есть помощи не ждать?)


Обычно помощь бывает советом, либо написанием части программы, а не полное написание программы с комментариями на каждой строчке.
Т.е. не наглей, учи С++ сам, закладывай фундамент с основ ))
Post #: 19
RE: Помогите с C++! - 2010-03-20 00:46:26.330000   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
quote:

Гамер вводит какую то команду, и как сделать чтобы рандомом выводилось либо "получилось" либо "не получилось"
Ребят,ну не вдавайтесь же вы в рассуждения. Он ничего не упоминал про реальную игру и тем более уж графику. Думаю,
scanf(%s,str); if ((2*rand()/RAND_MAX)&gt;=1) { printf("получилось"); } else printf("epic fail"); такой штучки ему хватит,читать же синтаксис начал только). *или я неправильно понял о_О*
Post #: 20
RE: Помогите с C++! - 2010-03-20 09:48:58.306666   
Stil Free 2

Сообщений: 183
Оценки: 0
Присоединился: 2009-03-26 17:17:38.296666
quote:

2. Почему когда я ввожу нечетное число, например 365, он вместо 182.5 пишет просто 182?

quote:

printf("%100.2f\n", summ);

Есть книжка для вузов хорошая для начинающего Царев Программирование на Си и ещё одна Редькиной х.з. там как название. Найди почитай.
Post #: 21
RE: Помогите с C++! - 2010-03-27 18:55:21.423333   
BlackAngElf

Сообщений: 57
Оценки: 0
Присоединился: 2009-11-10 12:38:19.423333
Genco спасибо большое) хоть ты не обосрал)
Post #: 22
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Помогите с C++!







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.