Aqu*_*irl 11 c++ file-io pointers
下面的代码是将不可读的字符写入文本文件:
int main ()
{
ofstream myfile ("example.txt");
if (myfile.is_open())
{
double value = 11.23444556;
char *conversion = (char *)&value;
strcat (conversion, "\0");
myfile.write (conversion, strlen (conversion));
myfile.close();
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想看看文件中写的实际数字:(请提示.
编辑 看到下面的答案,我将代码修改为:
int main ()
{
ofstream myfile ("example.txt");
if (myfile.is_open())
{
double value = 11.23444556;
myfile << value;
myfile.close();
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这产生putput:11.2344而实际数字是11.23444556.我想要完整的号码.
编辑帖子以通知所有人: 不可读的字符是由于ofstream的写入功能:
这是一个未格式化的输出函数
该引用来自:http://www.cplusplus.com/reference/iostream/ostream/write/
Naw*_*waz 27
为什么不简单地这样做(在问题编辑后更新答案):
#include <iomanip>
myfile << std::fixed << std::setprecision(8) << value;
myfile.close();
Run Code Online (Sandbox Code Playgroud)
现在,您可以看到文件中写入的实际数字.
请参阅文档std::setprecision.注意:您必须包含<iomanip>头文件.