2012年09月21日 星期五 09:10
我需要将整数型数字以带分隔号的形式输出。
比如,23848234234需要输出成23,848,234,234。这样一眼就能看出是23G左右。
我就在谷歌和百度上找"C语言 数字加逗号",自然有人用C语言重写一个这样的函数。
#include "stdio.h" void main() { int i; int a=1234567; int b[9]; for(i=0;a != 0;i++) { b[i] = a %1000; a /= 1000; } i--; for(;i>=0;i--) { printf("%d,",b[i]); } }
但是有人说可以用locale.h通过简单的配置来实现。
然后给出了这样的文字:
<locale.h>
//setlocale("LC_NUMERIC", ...)
struct lconv * localeconv(void);
char *decumal_point = ".";
char * thousands_sep = ","
char * grouping = "\3"
于是,我在网上查找了所有关于locale.h的用法,还是没有实现。
大家可以帮助我一下吗?
2012年09月21日 星期五 09:57
只找到了C++的:
#include <iostream>
#include <string>
#include <locale>
using namespace std;
class thousands_sep_facet:public std::numpunct<char>
{
public:
explicit thousands_sep_facet( size_t r=0 ) : std::numpunct<char>(r)
{
}
protected:
string do_grouping() const
{
return "\003";
}
};
int main( void )
{
cout << 1389992 << endl; // 1389992
locale loc( locale(), new thousands_sep_facet );
std::cout.imbue( loc );
cout << 1389992 << endl; // 1,389,992
return 0;
}
Zeuux © 2024
京ICP备05028076号