作业:
C语言未提供输入/输出关键字,其输入和输出是通过标准函数库来实现的。C语言通过scanf函数读取键盘输入,键盘输入又被称为标准输入。当scanf函数读取标准输入时,如果还没有输入任何内容,那么scanf函数会被卡住(专业用语为阻塞)执行时输入10,然后回车,显示结果如上图所示。为什么第二个scanf函数不会被阻塞呢?其实是因为第二个scanf函数读取了缓冲区中的'\n',即gets(p)实现了读取,打印其实输出了换行,所以不会阻塞。
解决办法:???
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int i;
scanf("%d", &i);
char* p;
p = (char*)malloc(i);
char c;
scanf("%c", &c);//为了去除\n
gets(p);
puts(p);
return 0;
}