关于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

当从文件中读取的是数字时,还正常一样,但如果读取的是字符串,则需要在相应的数据读取后面加上该数据长度

猜你喜欢

转载自blog.csdn.net/qq_46423166/article/details/106963244