gpt4 book ai didi

c++ - 文件设置精度C++代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:10:57 25 4
gpt4 key购买 nike

我在 C++ 中编写了这段代码,它工作得很好,首先它要求用户提供一个文件名,然后在该文件中保存一些数字。

但我想做的是保存两位小数的数字,例如用户输入 2,我想保存数字 2,但保留两位小数2.00

关于如何做到这一点有什么想法吗?

#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;

int main() {
double num;
double data;
string fileName = " ";
cout << "File name: " << endl;
getline(cin, fileName);
cout << "How many numbers do you want to insert? ";
cin >> num;
for (int i = 1; i <= num; i++) {
ofstream myfile;
myfile.open(fileName.c_str(), ios::app);
cout << "Num " << i << ": ";
cin >> data;
myfile << data << setprecision(3) << endl;
myfile.close();
}
return 0;
}

最佳答案

好的,在写入数据之前需要使用setprecision

我还会将文件的打开和关闭移出循环(当然还有 myfile 的声明,因为打开和关闭文件通常是一个相当“繁重”的操作在这样的循环中。

这是一个有效的小演示:

#include <iostream>
#include <fstream>
#include <iomanip>

int main()
{
std::ofstream f("a.txt", std::ios::app);
double d = 3.1415926;

f << "Test 1 " << std::setprecision(5) << d << std::endl;

f << "Test 2 " << d << std::endl;

f << std::setprecision(7);
f << "Test 3 " << d << std::endl;

f.precision(3);
f << "Test 3 " << d << std::endl;

f.close();


}

但是请注意,如果您的数字是 3.0,那么您还需要 std::fixed。例如。如果我们这样做:

    f << "Test 1 " << std::fixed << std::setprecision(5) << d << std::endl;

它会显示 3.00000

关于c++ - 文件设置精度C++代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21228956/

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