Hello, world на С++ или как надо ломать приложения

Вот внезапно, нежданно-негаданно решил я немного подучить язык программирования С++.

Нашел какой-то самоучитель, накатил в виртуалке ubuntu c g++, и начал кодить.

Первое, самое простое задание - да вы его конечно знаете, это "Hello world".

С выводом такого задания обычно ни у кого не было никаких проблем. Но я пошел в следующий урок - с описанием простого калькулятора. Принцип простого модульного окна - спроси у пользователя число1, дождись ответа, спроси число 2 и выдай результат (число1+ число2)

Вот сам код:

#include <iostream>
using namespace std;
	int main()
		{
			setlocale(0,"");
			/*7*/ int a, b;
			cout << "enter first ";
			cin >> a;
			cout << "plus how ";
			cin >>b;
	int c = a+b;
	cout << "total = " << c << endl;
return 0;
}
Казалось бы, действуй по шаблончику, и будет тебе счастье

Screenshot_10.png


Но мой пытливый мозг пошел дальше и начал проверять всякие приколюшечки типа сложим два отрицательных числа, сложим два разных числа, два одинаковых и т.д. В общем, все как и положено при тестировании.
НО! Раз это тестирование (а визуальным интерфейсом оно обрастет позже, пока надо проверять программную часть), я в последнем юзеркейсе взял и не ввел в одно из полей данные. И на выходе получил вооот такую штуку:

Screenshot_11.png

Мораль? Ну я тут даже не знаю, может быть стоит при разработке действительно полезных штук заранее закрывать валидацию ввода для учебных программок. Ну и при разработке всегда помнить - если вы дали пользователю возможность сделать что-то неправильно - он это ОБЯЗАТЕЛЬНО сделает. И да, это печаталось с зажатым капсом - так больше жалости.

Да, приложения я только учусь ломать, т.к. основная моя занятость - это все-таки тестирование. Если я в коде ошибся или есть что спросить - пишите в комменты!


Есть что сказать? Добавьте комментарий!