C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – ostream:前缀带空格的正数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在C中,空格可以包含在printf格式化标志中,这导致正数以空格为前缀.这是用于对齐有符号值的有用功能.我无法弄清楚如何在C中做同样的事情.在C:
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

请注意,第三个值以空格为前缀,而第四个值(负值)不是.

解决方法

您可以使用setfill和setw,如下所示:
cout << setw(4) << setfill(' ') << 1.2 << endl;
cout << setw(4) << setfill(' ') << -1.2 << endl;

这会产生以下输出

1.2
-1.2

别忘了包含< iomanip>为了编译(link to ideone).

大佬总结

以上是大佬教程为你收集整理的c – ostream:前缀带空格的正数全部内容,希望文章能够帮你解决c – ostream:前缀带空格的正数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: