Bị bắt buộc phải sử dụng fopen_s?

// 1216_FILE.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int a[100], n;		//Khai báo mảng
	//Nhập số phần tử
	cout << "Nhap so phan tu:";
	cin >> n;
	//Nhập mảng
	for (int i = 0; i<n; i++)
		cin >> a[i];
	//Ghi nội dung của mảng a lên tập tin
	//B1: Khai báo con trỏ tập tin
	FILE *fp;
	//B2: Mở tập tin ra để ghi dữ liệu
	fp = fopen("D:/VD1.TXT", "wt");	// \" \' \\
		//B3: Kiểm tra xem có mở được ko
	if (!fp) {
		cout << "Ko mo duoc tap tin!\n";
		return -1;
	}
	//B4: ghi dữ liệu lên tập tin văn bản
	fprintf(fp, "%d\n", n);	//ghi số phần tử lên dòng đầu
	for (int i = 0; i<n; i++)	//ghi mảng lên dòng thứ 2
		fprintf(fp, "%4d", a[i]);
	//B5: đóng tập tin lại
	fclose(fp);
	return 0;
}

Nếu chương trình kêu sử dụng fopen_s thì sử dụng fopen_s thôi. Sử dụng hàm này an toàn hơn.

Visual nó bắt leen _s cả rồi a :v, ko có _s nó báo error luôn chứ không warning nữa.

Nay e mới get ngày giờ hệ thống bằng cái location xong mà nó bắt chuyển thành _s, rồi cấu trúc khác hay sao mà dùng không giống như thằng location nữa =)).

P/s: sao mình không dùng thư viện fstream để đọc file :v c++ mà đúng ko :sunny:

1 Like

Đúng rồi :smile: Nếu bắt buộc phải sử dụng các hàm của C thì nên sử dụng các hàm _s

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?