文件中的缓冲区溢出问题

文件中的缓冲区溢出问题
使用gets()与fgets()的相关区别

#include
#include
int main()
{
	FILE *fp;
	char str[80];     //char str[8]
	if((fp=fopen("demo.txt","w"))==NULL)
	{
		printf("Failure to open demo.1.txt!\n");
		exit(0);
	}
	gets(str);
	fputs(str,fp);
	fclose(fp);
	return 0;
}
#include
#include
int main()
{
	FILE *fp;
	char str[8];
	if((fp=fopen("demo.txt","w"))==NULL)
	{
		printf("Failure to open demo.1.txt!\n");
		exit(0);
	}
//换用fgets(),
	fgets(str,sizeof(str),stdin);
	fputs(str,fp);
	fclose(fp);
	return 0;
}

文件中的缓冲区溢出问题_第1张图片//执行上述代码(使用gets()时溢出情况显示)

#include
#include
int main()
{
	FILE *fp;
	char str[8];
	if((fp=fopen("demo.txt","r"))==NULL)
	{
		printf("Failure to open demo.1.txt!\n");
		exit(0);
	}
	fgets(str,sizeof(str),fp);
	puts(str);
	fclose(fp);
	return 0;
}

你可能感兴趣的:(文件中的缓冲区溢出问题)