C++ 文件读写fopen_s/fopen

最好使用fopen_s,使用fopen提示“not safe”,二者区别如下:
1…fopen_s的安全是在于比函数fopen多了溢出检测。
2.在使用上,函数fopen的返回值是文件指针,如果返回的文件指针为NULL时,则表示打开文件失败。而函数fopen_s的返回值是相应的错误代码,通过查看错误代码代表的含义,有助于你排查问题
以上参考该文章
下面给出自己的代码:

#include 
#include 
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中打开方式的参数代码注释给出了说明,也可以参考这里
最后运行结果:
C++ 文件读写fopen_s/fopen_第1张图片
CSV表格中数据:
C++ 文件读写fopen_s/fopen_第2张图片
以上。
详细的没有研究,目前这些操作够用。

你可能感兴趣的:(常用技巧)