下面的代碼是寫不可讀的字符的文本文件:寫入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