吧里似乎没有地方给吧友贴经典代码用,个人开一个不合适。
之前用fflush其实错过很多次表示非常惭愧,故发帖提示。
fflush(stdin)错误因为fflush针对的其实是输出流,对输入流的操作未定义。
不相信是错误的同学可以直接去试试lint或者cppcheck。
个人自用的替代方法如下:
scanf("%*[^\n]%*c");
解释:scanf中*符号会略掉对应的输入,%*[^\n]我也只知道是读取到行尾,但是\n没有读取掉,所以补上一个%*c过滤掉\n。测试在Win+GCC下运行正常。
也不知道大家还有什么办法做这个?
另外,据说Press Any Key to Continue在C语言自身是不能实现的,需要外部各种控制台类库。也不知道有没有人解决过(比方一个类库,甚至是汇编)。
之前用fflush其实错过很多次表示非常惭愧,故发帖提示。
fflush(stdin)错误因为fflush针对的其实是输出流,对输入流的操作未定义。
不相信是错误的同学可以直接去试试lint或者cppcheck。
个人自用的替代方法如下:
scanf("%*[^\n]%*c");
解释:scanf中*符号会略掉对应的输入,%*[^\n]我也只知道是读取到行尾,但是\n没有读取掉,所以补上一个%*c过滤掉\n。测试在Win+GCC下运行正常。
也不知道大家还有什么办法做这个?
另外,据说Press Any Key to Continue在C语言自身是不能实现的,需要外部各种控制台类库。也不知道有没有人解决过(比方一个类库,甚至是汇编)。