用函数fopen_s打开数据文件
生活随笔
收集整理的這篇文章主要介紹了
用函数fopen_s打开数据文件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.一個實例
例子選自譚浩強老師的《C語言程序設(shè)計(第四版)》(其實我覺得叫做C語言入門更貼切)
#include<stdio.h> #include<stdlib.h> int main() {FILE *fp;errno_t err; //不同點1char ch, filename[10];printf("請輸入所用的文件名:");scanf_s("%s", filename,10);if ((err = fopen_s(&fp, filename, "w")) !=0) //不同點2{printf("無法打開此文件\n"); //如果打不開,就輸出打不開exit(0); //終止程序}ch = getchar(); //用來接收最后輸入的回車符printf("請輸入一個準備存儲到磁盤的字符串(以#結(jié)束):");ch = getchar(); //用來接收從鍵盤輸入的第一個字符while (ch != '#') //當(dāng)輸入“#”時結(jié)束循環(huán){fputc(ch, fp); //向磁盤輸出一個字符putchar(ch); //將輸出的字符顯示在屏幕上ch = getchar(); //再接收從鍵盤輸入的一個字符}fclose(fp); //關(guān)閉文件putchar(10); //向屏幕輸出一個換行符return 0; }
2.分析
fopen_s函數(shù)聲明如下: errno_t fopen_s( FILE** pFile, const char *filename, const char *mode );fopen函數(shù)的返回值是一個指向文件的指針,而fopen_s函數(shù)的返回值則不同,正確返回0,不正確返回非0。
要定義一個變量來接收fopen_s函數(shù)的返回值,即errno_t err; 其中errno_t是int的別名,typedef int errno_t;即err是個整型值,用來接收fopen_s函數(shù)的返回值。通過判斷err的值是否為0,可以知道打開數(shù)據(jù)文件成功與否,這是不同點1。
判斷打開成功與否fopen_s用(err = fopen_s(&fp, filename, “w”)) !=0,因為它的返回值是整型,而fopen判斷打開成功與否,用fp = fopen(filename, “w”)) ==NULL因為它的返回值是指針,打開失敗返回空指針NULL,這是不同點2。
FILE *fp;定義fp是一個指向FILE類型數(shù)據(jù)的指針變量,&p就是一個指向FILE類型數(shù)據(jù)的指針變量的地址,也就是一個<指向FILE類型數(shù)據(jù)的指針變量>的指針變量。有點繞,其實只要記住,先如FILE *fp;定義一個指向FILE類型數(shù)據(jù)的指針變量,在fopen_s的參數(shù),在定義的指針變量前加&即可。
總結(jié)
以上是生活随笔為你收集整理的用函数fopen_s打开数据文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AlexNet结构详解(引用MrGiov
- 下一篇: 程序设计C++使大家容易陷入重复劳动