01/10/2018, 01:01

Đọc và ghi file trên C

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
void main()
{
	FILE*f;
	f = fopen("Input.txt", "wt");
	fprintf(f, "%d", 1234);
	fclose(f);
	int n;

	f = fopen("Input.txt", "rt");
	fscanf(f, "%d", &n);
	fclose(f);
	printf("%d", n);
	_getch();
}

Pro nào cho em hỏi tại sao khi bỏ #define _CRT_SECURE_NO_WARNING thì chương trình báo lỗi ? Có cách nào khắc phục trong trường hợp đó không ? Khi bỏ #define _CRT_SECURE_NO_WARNING thì có bị ảnh hưởng gì không ? Em dùng VS 2013.

The Wind viết 03:02 ngày 01/10/2018

CRT_SECURE_NO_WARNING
K xài VS nhưng thấy bảo thì cái dòng đó để bỏ cảnh báo lỗi bảo mật trong cái của VS

Trương Quang Nội viết 03:12 ngày 01/10/2018

Có một số hàm đã không còn được hỗ trợ trong những version tiếp theo của VS.

Ví dụ ở trên có: fscanf(“”); , fprintf(“”);

  • bạn có thể đổi sang sử dụng các hàm khác như fscanf_s(); , fprintf_s(); là những hàm tốt hơn vì nó kiểm tra chặt chẽ buffer để không bị lỗi tràn buffer (buffer overflow).

  • Bạn vẫn có thể sử dụng các hàm đã không còn được trình biên dịch hỗ trợ bằng cách tắt các Warning đó như bạn đã làm.

Về ảnh hưởng thì bây giờ không bị ảnh hưởng gì, nhưng sau này update lên version các bản khác thì code của bạn sử dụng hàm cũ có thể sẽ không biên dịch được!

Bài liên quan
0