VS2015中用gets_s读取EOF

来源:互联网 发布:热传导计算软件 编辑:程序博客网 时间:2024/06/07 03:01

今天试图用gets_s读取EOF,怎么都不行,于是做了以下实验:

#include<stdio.h>

int main(void)
{
char ch[10];
gets_s(ch);
int i;
for (i = 0; i < 10;i++)
printf("*%d* *%c*\n", ch[i], ch[i]);
return 0;

}

当连续输入ctr+z时,仅读入一个‘\0’,余为自动填充的数值为-2的无法打印的字符。如图:


当先输入若干字母后再输入ctr+z,先读入字母,然后第一个^z打印其ASCII码(26,EOF打印值为-1)及一个奇怪字符,然后无论输入几个ctr+z都打印一个‘\0’,其后为自动填充数据,如图。


至于原理,不懂,有大神路过请指点。

但以上实验可以说明无法利用gets_s读入EOF!

原创粉丝点击