在C中,一個空格可以包含在printf格式標記中,這會導致正數以空格爲前綴。這是對齊有符號值的有用功能。我無法弄清楚如何在C++中做同樣的事情。在C:ostream:在空格前面加上一個正數
double d = 1.2;
printf("%f\n",d);
printf("%+f\n",d);
printf("% f\n",d);
生產:
1.2
+1.2
1.2
使用ostream的,我可以做前兩個,但我該怎麼做第三?
int d = 1.2;
std::cout << d << std::endl;
std::cout << std::showpos << d << std::endl;
// ??????????????
編輯:似乎有大約是否我只想前綴的所有我值與空間的一些混亂。我只想以的正數值爲空格,類似於a),就像printf空間標誌所做的那樣,b)類似於showpos所做的,除了空格而不是「+」。例如:
printf("%f\n", 1.2);
printf("%f\n", -1.2);
printf("% f\n", 1.2);
printf("% f\n", -1.2);
1.2
-1.2
1.2
-1.2
請注意,第三個值以空格爲前綴,而第四個(負)值爲非前綴。
你只是想打印空間? std :: cout <<「」; – Jeff
如果您需要對齊數字,通常需要使用固定的精度和特定的字段寬度。如果你這樣做,那麼你也可以根據需要在開始時獲得額外的空間。 –