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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2011, 21:57   #1
DarkAltair
 
Регистрация: 05.10.2011
Сообщений: 7
По умолчанию variable 'ch' is being used without being initialized (С++)

В программе деления чисел при вводе нуля в делитель должно выскакивать сообщение, но вместо этого вылетает ошибка:
Run-time check failure #3 - The variable 'ch' is being used without being initialized.
Можете подсказать причину?

Листинг:
Код:
// divdo2.cpp: определяет точку входа для консольного приложения.

#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>

int main(){
	setlocale(LC_ALL, "Russian");
	long divident, divisor;
	char ch;
	do
	{
		cout << "\nВведите делимое: "; cin >> divident;
		cout << "\nВведите делитель: "; cin >> divisor;
		if (divisor == 0)
		{
			cout << "Некоректный делитель!\n";
			continue;
		}
		cout << "Частное равно: " << divident/divisor;
		cout << "\nОстаток равен: " << divident%divisor << endl;
		cout << "\nЕщё раз?(y/n)";
		cin >> ch;// выдаёт ошибку по неизвестной причине.
	}
	while (ch != 'n');
	return 0;
}

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 05.10.2011 в 22:12.
DarkAltair вне форума Ответить с цитированием
Старый 05.10.2011, 22:07   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Run-time check failure #3 - The variable 'ch' is being used without being initialized.
Ошибка времени выполнения.
Переменная 'ch' используется, но она не была инициализирована.
Прежде, чем использовать эту переменную, задайте ей какое-нибудь значение, например:
Код:
ch = '';
Вадим Мошев вне форума Ответить с цитированием
Старый 05.10.2011, 22:26   #3
DarkAltair
 
Регистрация: 05.10.2011
Сообщений: 7
По умолчанию

Вадим Мошев
Благодарю, теперь всё работает.
DarkAltair вне форума Ответить с цитированием
Старый 05.10.2011, 22:28   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Какой я всё-таки хороший
Вадим Мошев вне форума Ответить с цитированием
Старый 06.10.2011, 08:49   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Вадим Мошев
Какой я всё-таки хороший
ну, это безусловно!

а поясните мне глупому, почему компилятор ругался. я не вижу использования (обращения к данной переменной до её присвоения cin >> ch ) ?!
(для тех же переменных divident, divisor компилятор иницилизации не требует?)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.10.2011, 09:36   #6
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а поясните мне глупому, почему компилятор ругался. я не вижу использования (обращения к данной переменной до её присвоения cin >> ch ) ?!
Может компилятор какой кривой
An1ka вне форума Ответить с цитированием
Старый 06.10.2011, 15:18   #7
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну, это безусловно!

а поясните мне глупому, почему компилятор ругался. я не вижу использования (обращения к данной переменной до её присвоения cin >> ch ) ?!
(для тех же переменных divident, divisor компилятор иницилизации не требует?)
Спустя некоторое время после своего ответа автору темы, я тоже задался этим вопросом.
У меня тоже есть сипипишный компилятор, но устанавливать мне его лень, да и это не мой основной язык программирования.
А по поводу возмущений компилятора думаю вот что.
Обратите внимание, что переменные divident, divisor имеют тип Long (это числовой тип), в то время как переменная ch является символьной. Возможно, причина в этом.
Могу ошибаться.
А может, Вы знаете ответ, но просто проверяете меня?
Вадим Мошев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка - Run-time error '91' Object variable or With block variable not set Артур Иваныч Microsoft Office Excel 13 12.09.2012 14:18
For loop control variable must be simple local variable Hehe Общие вопросы Delphi 11 26.12.2011 19:42
run-time error 91 (object variable or with block variable not set) mrs.petrushina Microsoft Office Access 5 19.04.2011 12:59
run-time error 91 (object variable or with block variable not set) mrs.petrushina Microsoft Office Excel 7 05.04.2011 00:22
Variable <Имя> might not have been initialized Anchut@ Общие вопросы Delphi 5 21.06.2010 11:01