Как уже упоминалось выше, вы можете использовать std :: fixed для решения вашей проблемы, например:
cout << fixed;
cout << "Bas ana: " << x << "\tSon faiz: " << t << "\tSon ana: " << x+t <<endl;
Однако после того, как вы это сделаете, каждый раз, когда вы печатаете число с плавающей запятой или двойное число в любом месте вашего проекта , число все равно будет печататься в этой фиксированной записи. Вы можете повернуть его обратно, используя
cout << scientific;
но это может стать утомительным, если ваш код усложняется.
Вот почему Boost сделал State State Saver , который автоматически возвращает используемый вами поток ввода-вывода в состояние, в котором он находился до вызова вашей функции. Вы можете использовать это так:
#include <boost/io/ios_state.hpp> // you need to download these headers first
{
boost::io::ios_flags_saver ifs( os );
cout << ios::fixed;
cout<<"Bas ana: "<<x<<"\tSon faiz: "<<t<<"\tSon ana: "<<x+t<<endl;
} // at this bracket, when ifs goes "out of scope", your stream is reset
Дополнительную информацию о сохранении состояния потока ввода-вывода Boost можно найти в официальных документах .
Вы можете также воспользоваться библиотекой Boost Format , которая также может упростить вывод, особенно если вам приходится иметь дело с интернационализацией. Однако это не поможет вам в решении этой конкретной проблемы.