下面的代码是写不可读的字符的文本文件:写入double类型值到一个文本文件
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;
}
我希望看到书面:(提示请在文件中的实际数量
EDIT 看到下面的答案,我修改的代码为:
int main()
{
ofstream myfile ("example.txt");
if (myfile.is_open())
{
double value = 11.23444556;
myfile << value;
myfile.close();
}
return 0;
}
这将产生putput:11.2344而实际数量是11.23444556。我想要完整的号码。
编辑后通知大家: 的不可读的字符是由于ofstream的的写功能:
这是一个未格式化输出功能
这句话是:http://www.cplusplus.com/reference/iostream/ostream/write/
@Anisha - 默认是显示6位数字,如果你想要更高的精度,你可以使用'myfile << setprecision(10)<< value;'来获得数字的10位数。 – 2011-06-03 11:15:05
@Bo Persson:要获得数字中的10位数字,'std :: fixed'也是必要的,否则后面的零不会被打印出来。 – Nawaz 2011-06-03 11:21:37
在这种情况下抛出一个像这样的错误,除了错误之外,违反了严格的别名规则,所以你的代码无法工作。 – 2011-06-03 12:35:29