c語言中向文本文件中寫入實數


1、

#include <stdio.h>

int main(void)
{
    FILE *fp;  // 聲明指向FILE型的指針變量 
    double pi = 3.14159265358979323846;   //聲明 double型變量 
    printf("pi from value: %23.21f.\n", pi); //顯示變量pi的值,因為浮點數的精度是有限的,導致pi的值不等於初始值。
    
    
    //將變量pi的值使用fprintf函數寫入到文件中
    if((fp = fopen("PI.txt", "w")) == NULL) //以只寫的方式打開文件PI.txt.
        printf("\aFile open failed.\n");
    else
    {
        fprintf(fp, "%lf", pi); //使用fprintf函數將變量pi的值寫入到流fp(文件PI.txt)中,文件PI.txt中僅保留小數點后6位小數,這是因為浮點數默認只輸出
        //小數點后6位數字 
        fclose(fp);    
    } 
    
    
    //從PI.txt文件中讀取數據,使用函數fscanf函數保存至變量中並顯示
    if((fp = fopen("PI.txt","r")) == NULL) //以只讀方式打開文件
        printf("\aFile open failed.\n");
    else
    {
        fscanf(fp, "%lf", &pi);
        printf("Pi from file: %23.21f.\n", pi); // 次數並沒有准確的顯示文件PI.txt中的數值,也就是小數點后六位,這是因為double型並不能毫無誤差地顯示實數
        //的所有位數。 
        fclose(fp);    
    } 
    return 0;    
} 

// 以上程序說明了什么?    1、浮點數精度有限  2、fprintf函數不能夠寫入所有的位數  3、double型並不能毫無誤差地顯示實數

// 要做到不丟失任何一位數據(寫入文件的時候不丟失任何數據),就必須寫入所有位數。  也就是說能夠寫入所有位數? 然后完整的顯示?  
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM