最好使用fopen_s,使用fopen提示“not safe”,二者区别如下:
1…fopen_s的安全是在于比函数fopen多了溢出检测。
2.在使用上,函数fopen的返回值是文件指针,如果返回的文件指针为NULL时,则表示打开文件失败。而函数fopen_s的返回值是相应的错误代码,通过查看错误代码代表的含义,有助于你排查问题
以上参考该文章
下面给出自己的代码:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
FILE *fp_w;
FILE *fp_r;
// fp_w = fopen("1.cvs", "a");
fopen_s(&fp_w ,"1.csv", "a");
for (int i = 0; i < 5; i++)
{
fprintf(fp_w, "%d,%d,%d\n", 1, 2, 3);
}
fclose(fp_w);
cout << "写入成功!" << endl;
// 读取
int num[3],Judge;
// fp_r = fopen("1.cvs", "r");
Judge=fopen_s(&fp_r, "1.csv", "r");
if (Judge == 0)
cout << "文件打开成功!" << endl;
for (int i = 0; i < 5; i++)
{
fscanf_s(fp_r, "%d,%d,%d", &num[0], &num[1], &num[2]);
cout << num[0] << " " << num[1] << " " << num[2] << endl;
}
fclose(fp_r);
system("pause");
}
// a,a+ : 没有文件,创建一个新文件,在写入的时候不覆盖原有信息;
// w,w+ : 可以自动创建一个文件,写
// r,r+ : 读,文件必须存在 + 号代表读写
注意:
1.fopen_s 中的参数要取地址符;
2.fscanf_s中储存数据的变量要取地址符;
3.关于fopen_s中打开方式的参数代码注释给出了说明,也可以参考这里
最后运行结果:
CSV表格中数据:
以上。
详细的没有研究,目前这些操作够用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)