输入逗号和小数
Inputting commas and decimals
我应该允许用户输入为C字符串"xxx,xxx,xxx.xx"(x是数字)。 因此,如果我输入"343,111,222.00",则输出将完全相同。 所以我的问题是,如果这是怎么做到的? 我想我想做的是,如果用户输入"123456",则输出会自动输入"123,456.00"。 任何建议/提示/批评不胜感激。
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
int main() {
using namespace std;
char myStr[256];
char tempStr[256];
double sum = 0; //Adding sum soon.
int decreaseDist;
cout << "Enter Any integers ";
cin.getline(myStr,256);
cout << endl;
int finalCount = 0;
int i;
long distToDot = tempStr[256] - 3;
for(i=0; myStr[i] != ' '; i++) {
putchar(myStr[i]);
decreaseDist = distToDot = i;
if(i !=0 && decreaseDist > 0 && decreaseDist % 3== 0) {
tempStr[finalCount++] = ',';
}
tempStr[finalCount++] = myStr[i];
}
tempStr[finalCount] = ' ';
return 0;
}
您的问题似乎分为两部分:
-
十进制数字如何始终以正好两个小数位数显示。此问题的答案是将流设置为使用
fixed
格式和精度 2:std::cout << std::setprecision(2) << std::fixed;
-
问题的另一部分似乎询问如何创建数千个分隔符。这个问题的答案是使用具有合适
std::numpunct<char>
面的std::locale
,例如:struct numpunct : std::numpunct<char> { std::string do_grouping() const { return "3"; } }; int main() { std::cout.imbue(std::locale(std::locale(), new numpunct)); std::cout << double(123456) << 'n'; }
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 检查输入是否不是整数或数字
- 正在尝试了解输入验证循环
- 读取文件并输入到矢量中
- C++如何通过用户输入删除列表元素
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- C++将浮点指针值舍入为小数位数
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 从给定的 I 和 D 序列中形成最小数
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 输入逗号和小数
- 如何限制输入小数位数,直到用户可以输入值
- c++循环,输入的最大/最小数
- 不要接受小数作为输入
- 使用输入参数固定大小数组包装本机方法