核心代码:
通过getchar 判断是否有换行符 和 结束符 来结束本次的输出
void clearBuff() {
char ch;
while ((ch = getchar()) != 'n' && ch != EOF);
}
C风格,上实例
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
int main(void) {
char addr[50];
char name[20];
printf("输入你的名字:n");
scanf_s("%s", name, sizeof(name));
printf("%sn", name);
这段代码输出
此时代码并没有出现错误,我们加上下一句,就会发现问题
// clearBuff();
printf("输入你的地址:n");
gets_s(addr, sizeof(addr));
printf("%sn", addr);
还没有等你输入你的地址,就直接输出结束了,这是由于缓存的问题,网上有很多方法,都不太好用,我直接提供大家,用这种方法来解决这个问题.,将红色字体的函数在第一次输出语句完调用它就可以了.
C++风格
#include
#include
#include
#include
using namespace std;
void clearBuff() {
char ch;
while ((ch = getchar()) != 'n' && ch != EOF);
}
int main(void) {
char addr[50];
char name[20];
cout << "输入你的名字:" << endl;
cin >> name;
cout << "我的名字:" << name << endl;
clearBuff();
cout << "输入你的地址: " << endl;
cin >> addr;
cout << "我的地址是:" << addr << endl;
system("pause");
return 0;
}



