Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Програма не работает коректно

Ответить
Настройки темы
C/C++ - Програма не работает коректно

Аватара для COM-BAT

Пользователь


Сообщения: 84
Благодарности: 4


Конфигурация

Профиль | Отправить PM | Цитировать


Решил для себя написать простенькую програму которая могла б переводить кило байты в байты и тд и тп. В целом она должна была работать с b, B, Kb, KB, Mb, MB, Gb, GB, Tb, TB, Pb, PB, Eb,EB. Написал но програма не хочет работать с всем что выше Gb. Вот код:
Код: Выделить весь код
#include <iostream>
#include <string>
using namespace std;

int main()
{
	const int mk=1024;
	const int mb=8;
	int fin;
	bool eror=false;
	string ft;
	string st;
	int ofin;
	int out;
	char yn;
	end:

	cin>>fin>>ft>>st;

	if((ft=="b")||(ft=="B")||(ft=="Kb")||(ft=="KB")||(ft=="Mb")||(ft=="MB")||(ft=="Gb")||(ft=="GB")||(ft=="Tb")||(ft=="TB")||(ft=="Pb")||(ft=="PB")||(ft=="Eb")||(ft=="EB"))
	{
	if(ft=="b") {ofin=fin;};
	if(ft=="B") {ofin=fin*mb;};
	if(ft=="Kb"){ofin=fin*mk;};
	if(ft=="kB"){ofin=fin*mk*mb;};
	if(ft=="Mb"){ofin=fin*mk*mk;};
	if(ft=="MB"){ofin=fin*mk*mk*mb;};
	if(ft=="Gb"){ofin=fin*mk*mk*mk;};
	if(ft=="GB"){ofin=fin*mk*mk*mk*mb;};
	if(ft=="Tb"){ofin=fin*mk*mk*mk*mk;};
	if(ft=="TB"){ofin=fin*mk*mk*mk*mk*mb;};
	if(ft=="Pb"){ofin=fin*mk*mk*mk*mk*mk;};
	if(ft=="PB"){ofin=fin*mk*mk*mk*mk*mk*mb;};
	if(ft=="Eb"){ofin=fin*mk*mk*mk*mk*mk*mk;};
	if(ft=="EB"){ofin=fin*mk*mk*mk*mk*mk*mk*mb;};
	//--------------------------------------------------------
		if((st=="b")||(st=="B")||(st=="Kb")||(st=="KB")||(st=="Mb")||(st=="MB")||(st=="Gb")||(st=="GB")||(st=="Tb")||(st=="TB")||(st=="Pb")||(st=="PB")||(st=="Eb")||(st=="EB"))
		{
		if(st=="b") {out=ofin;};
		if(st=="B") {out=ofin/mb;};
		if(st=="Kb"){out=ofin/mk;};
		if(st=="KB"){out=(ofin/mk)/mb;};
		if(st=="Mb"){out=(ofin/mk)/mk;};
		if(st=="MB"){out=ofin/mk/mk/mb;};
		if(st=="Gb"){out=ofin/mk/mk/mk;};
		if(st=="GB"){out=(ofin/mk/mk/mk)/mb;};
		if(st=="Tb"){out=ofin/mk/mk/mk/mk;};
		if(st=="TB"){out=ofin/mk/mk/mk/mk/mb;};
		if(st=="Pb"){out=ofin/mk/mk/mk/mk/mk;};
		if(st=="PB"){out=ofin/mk/mk/mk/mk/mk/mb;};
		if(st=="Eb"){out=ofin/mk/mk/mk/mk/mk/mk;};
		if(st=="EB"){out=ofin/mk/mk/mk/mk/mk/mk/mb;};
		}
		else{
			cout<<"Eror2!"<<endl;
			goto end;
		}
	//--------------------------------------------------------
	}
	else{
		cout<<"Eror1!"<<endl;
		goto end;
	}
	cout<<fin<<ft<<"="<<out<<st<<endl;
	goto end;
	system("pause");

-------
"Нет никакой гарантии, что Windows сохранит лидерство"©Bill Gates


Отправлено: 17:09, 02-02-2013

 

В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата COM-BAT:
не хочет работать с всем что выше Gb »
Что значит не хочет работать? Ошибки?

На вскидку, в Int (32) идет переполнение. Попробуйте использовать тип long long

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:50, 02-02-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для COM-BAT

Пользователь


Сообщения: 84
Благодарности: 4

Профиль | Отправить PM | Цитировать


LilLoco,
спасибо інта не хватало

-------
"Нет никакой гарантии, что Windows сохранит лидерство"©Bill Gates


Отправлено: 18:54, 02-02-2013 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Програма не работает коректно

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Не коректно работает GeForce 460gtx Rushuy Видеокарты 21 30-03-2011 12:59
Службы - [решено] Сервис Bluetooth от Microsoft работает не коректно 988essence Microsoft Windows 2000/XP 8 16-04-2010 18:50
Установка - Общий принтер на ХР не коректно работает с Vista fastorius Microsoft Windows Vista 0 07-04-2009 01:42
Не коректно отображаеться видео. Bass666 Хочу все знать 4 19-01-2007 17:03
винт на 250 гиг работает не коректно. Alekse-y Накопители (SSD, HDD, USB Flash) 26 01-04-2006 18:22




 
Переход