Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2010, 15:27   #1
FIREVISTA
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 13
Злость Проблемы в Microsoft Visual Studio

Нет, это уже бесит! Дело в том, что .... как это объяснить... Короче, установил MSVS 2005, и стал по книжки учиться:
1. Ругается на scanf()! Выдает предупреждение "Используйте вместо scanf() функцию scanf_s() Функция может оказаться небезопасной". Но обе функции НЕ работают корректно! А также ругается на getch(). Пишет предупреждение, что "вместо этой функции используйте _getch()"
2.Вчера увидел, что не вычисляются вычисления! Вывод: 0! Но почему? Программу написал правельно, по книжке.

У меня до этого стоял 2008-ой, может дело в нем? Переустанавливал студию, не помогло. А может, надо просто переустановить винду? Как думаете?
FIREVISTA вне форума Ответить с цитированием
Старый 02.07.2010, 15:34   #2
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

Цитата:
Сообщение от FIREVISTA Посмотреть сообщение
стал по книжки учиться
Цитата:
написал правельно
хотелось бы увидеть что именно написал
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума Ответить с цитированием
Старый 02.07.2010, 15:37   #3
FIREVISTA
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 13
По умолчанию

//Ex2_05.cpp
//Вычисление колличества обоев, необходимых для того, чтобы поклеить комнату

#include <iostream>
#include <locale.h>

using std::cin;
using std::cout;
using std::endl;

int main()
{
double height = 0.0, width = 0.0, length = 0.0; //размеры комнаты
double perimetr = 0.0; //периметр комнаты
const double rollwidth = 21.0; //ширина стандартного рулона
const double rollength = 12.0 * 33.0; //длина стандартного рулона (33 фута)
int strips_per_roll = 0; //колличество полос в рулоне
int strips_reqd = 0; //необходимое колличество полос
int nrolls = 0; //общее число рулонов

setlocale(LC_ALL, "Russian");
cout << endl //начать новую строку
<< "Введите высоту комнаты в дюймах: ";
cin >> height;
cout << endl //начать новую строку
<< "Введите длину и ширину комнаты в дюймах: ";
cin >> length >> width;

strips_per_roll = rollength / height; //получить колличество полос в рулоне
perimetr = 2.0 * (length + width); //вычислить периметр комнаты
strips_reqd = perimetr / rollwidth; //получить необчодимое колличество полос
nrolls = strips_reqd / strips_per_roll; //вычислить колличество рулонов

cout << endl
<< "Для оклейки вашей комнаты понадобится " << nrolls << " рулонов обоев.";
cout << endl;

return 0;
}



Это относится ко второму пункту.
FIREVISTA вне форума Ответить с цитированием
Старый 02.07.2010, 15:53   #4
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

попробуйте так
Код:
#include <iostream>
#include <conio.h>
#include <locale.h>

using namespace std;

int main()
{
double height, width, length; //размеры комнаты
double perimetr; //периметр комнаты
const double rollwidth = 21.0; //ширина стандартного рулона
const double rollength = 12.0 * 33.0; //длина стандартного рулона (33 фута)
int strips_per_roll = 0; //колличество полос в рулоне
int strips_reqd = 0; //необходимое колличество полос
int nrolls = 0; //общее число рулонов

setlocale(LC_ALL, "Russian");
cout << endl<< "Введите высоту комнаты в дюймах: ";
cin >> height;
cout << endl<< "Введите длину и ширину комнаты в дюймах: ";
cin >> length;
cin >> width;

strips_per_roll = (int)(rollength/height); //получить колличество полос в рулоне
perimetr = 2.0 * (length + width); //вычислить периметр комнаты
strips_reqd = (int)(perimetr/rollwidth); //получить необчодимое колличество полос
nrolls = (int)(strips_reqd/strips_per_roll); //вычислить колличество рулонов

cout << endl<< "Для оклейки вашей комнаты понадобится " << nrolls << " рулонов обоев."<< endl;
getch();
return 0;
}
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума Ответить с цитированием
Старый 02.07.2010, 16:05   #5
FIREVISTA
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 13
По умолчанию

нет, результат по-прежнему нуль
P.S. компилятор по-прежнему ругается на getch()
FIREVISTA вне форума Ответить с цитированием
Старый 02.07.2010, 16:13   #6
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

Насчет getch() сделай как просит.
Насчет нулей, учти что значения нужно вводить в дюймах, а стандартные размеры рулонов указываются в футах.
Вот я ввел значения 100, 400, 500 вывело у меня 28. Когда маленькие значения вводишь strips_reqd получает нулевое значение отсюда и нули
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума Ответить с цитированием
Старый 02.07.2010, 16:14   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Насколко я помню getch() возвращает введенный символ с клавиатуры, а Си не очень то любит когда функция возвращает в никуда..
Пользуй getchar(); он ничего не возвращает
И кстати, текст ошибок нужно приводить.
И тему нормально называть иначе в баню.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.07.2010, 16:24   #8
FIREVISTA
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 13
Радость

Цитата:
Сообщение от Stilet Посмотреть сообщение
Насколко я помню getch() возвращает введенный символ с клавиатуры, а Си не очень то любит когда функция возвращает в никуда..
Пользуй getchar(); он ничего не возвращает
И кстати, текст ошибок нужно приводить.
И тему нормально называть иначе в баню.
warning C4996: 'getch' was declared deprecated - код ошибки.
getchar(); не "задержал" экран

Тему нормально назвать? Больше ничего не пришло в голову
FIREVISTA вне форума Ответить с цитированием
Старый 02.07.2010, 16:25   #9
FIREVISTA
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 13
По умолчанию

Цитата:
Сообщение от mrChester Посмотреть сообщение
Насчет getch() сделай как просит.
Насчет нулей, учти что значения нужно вводить в дюймах, а стандартные размеры рулонов указываются в футах.
Вот я ввел значения 100, 400, 500 вывело у меня 28. Когда маленькие значения вводишь strips_reqd получает нулевое значение отсюда и нули
Окей, работает.

Но со scanf(); проблема не решена.
FIREVISTA вне форума Ответить с цитированием
Старый 02.07.2010, 16:26   #10
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

А вместо getch(); System("Pause"); не канает?
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Microsoft Visual Studio 2008 Vesper Помощь студентам 7 20.07.2010 00:37
Microsoft Visual Studio C++ 2008 +Sergey+ Visual C++ 3 28.02.2009 22:08
Visual J# from Microsoft Visual Studio .NET Flash_ Общие вопросы по Java, Java SE, Kotlin 2 28.12.2006 10:16