關於C語言中從文件讀取數據時,fopen,fopen_s和fscanf,fscanf_s的函數用法(函數的用法有很大區別)

首先這都是針對由於VS軟件的設置,一些函數的需要在函數名後面加”_s“才能使用。

(或者最直接的方法程序開頭加#pragma warning(disable:4996) 就什麼問題都沒有了)

比如最常見的scanf_s,strcmp_s,strcpy_s。這些加後綴,和原來的scanf,strcmp,strcpy用法一樣。

但是有些加完後綴使用方法就不一樣,比如下面文件讀取數據時的兩個函數:

一,fopen,fopen_s的函數用法

FILE *fp;     //定義


fp = fopen("JK0405.txt", "r+")           //正常情況下


fopen_s(&fp, "1111.txt", "wt+");         //VS版本加_s

二,fscanf,fscanf_s的函數用法

struct Student
{
	int data;
	int name;
	char age[10];
};                          //結構體定義



fscanf(fpp, "%d %d %s\n", &stu[i].data, &stu[i].name,stu[i].age); 


fscanf_s(fpp, "%d %d %s\n", &stu[i].data, &stu[i].name,stu[i].age,10);    //注意看最後的10

當從文件中讀取的是數字時,還正常一樣,但如果讀取的是字符串,則需要在相應的數據讀取後面加上該數據長度

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章