gpt4 book ai didi

c++ - 打印带有千位和百万位分隔符的整数

转载 作者:可可西里 更新时间:2023-11-01 14:54:13 25 4
gpt4 key购买 nike

有一个关于打印带有千位/百万位分隔符的整数的问题。

我有一个文本文件,其中包含国家、城市和总人口。

我必须阅读文件,并按国家排序。如果国家/地区是平等的,我必须按人口降序排序。

文本文件是这样的:

澳大利亚........悉尼.......10.123.456

巴西.............圣保罗.......7.123.345

我将所有 3 个读入一个单独的字符串。然后我删除所有“。”在人口字符串中。然后我使用 atoi() 将人口字符串转换为整数。

现在,如果国家/地区相等,我可以按人口排序。这种排序工作正常。

到目前为止一切顺利。但我需要将千/百万分隔符放入人口的打印中。

如果我使用字符串,带有“.”对于人口,排序不能正常工作。它的排序如下:

x.......x......1.123456

x.......x......10.123.456

x.......x......2.123.232

它必须看起来像:

澳大利亚........悉尼.......10.123.456

澳大利亚........布里斯类.......8.123.456

有没有办法通过再次在 int 中添加分隔符来操纵打印?

非常感谢

最佳答案

imbue()带有 locale 的输出流具有所需的分隔符。例如:

#include <iostream>
#include <locale>

int main()
{
// imbue the output stream with a locale.
int i = 45749785;
std::cout << i << "\n";

std::cout.imbue(std::locale(""));
std::cout << i << "\n";
}

我机器上的输出(和 online demo ):

4574978545,749,785

正如 James Kanze 评论和回答的那样灌输输入流也可以读取分离的 int 值,而无需手动修改输入。


参见 Stroustrop 的 Appendix D: Locales以获得语言环境的详细概述。

关于c++ - 打印带有千位和百万位分隔符的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17530408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com