33,311
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
int main(void)
{
int num;
while (1) {
cin >> num;
if (num == 1 || num == 2) {
break;
} else {
cout << "其实,num 得到的值是:" << num << endl;
cout << "输入有错!请重新输入" << endl;
cin.clear();
cin.ignore(1024, '\n'); // 要是输入了超过 1024 个字符而又死循环的话,把括号里的 1024 再改大一点
}
}
return 0;
}
#include <iostream>
using namespace std;
int main(void)
{
int num;
while (1) {
cin >> num;
if (num == 1 || num == 2) {
break;
} else {
cout << "其实,num 得到的值是:" << num << endl;
cout << "输入有错!请重新输入" << endl;
cin.clear();
cin.ignore(1024, '\n'); // 要是输入了超过 1024 个字符而又死循环的话,把括号里的 1024 再改大一点
}
}
return 0;
}
#include<iostream>
#include<string>
using namespace std;
int main() {
string str;
int flag = 1;
cout << "请输入:";
while (true) {
cin >> str; //全部当成字符串来处理
if (str == "1" || str == "2")
break;
cout << "非法输入,请重新输入:";
}
cout << stoi(str); //调用转换函数string->int
return 0;
}
#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
char a[10];
int num;
while (1)
{
cin.getline(a, 10);
if (0 == strcmp(a, "1") || 0 == strcmp(a, "2") || 0 == strcmp(a, "3"))
{
num = atoi(a);
cout<<"num = "<<num<<endl;
break;
}
else
{
cout<<"wrong input:"<<a<<endl;
cin.clear();
cin.sync();
}
}
return 0;
}
调试结果:
33
wrong input:33
22
wrong input:22
4213
wrong input:4213
21
wrong input:21
2a
wrong input:2a
asdasdasd
wrong input:asdasdasd
3
num = 3
#include <stdio.h>
#include <string.h>
char s[80];
int i;
char c;
int main() {
while (1) {
printf("Input a integer:");fflush(stdout);
rewind(stdin);
fgets(s,80,stdin);
if (strlen(s)>10) {
printf("Input too long(>9)!\n");
continue;
}
if (2==sscanf(s,"%d%c",&i,&c)) {
if ('\n'==c) {
printf("%d is a integer.\n",i);
break;
}
}
if ('\n'==s[strlen(s)-1]) s[strlen(s)-1]=0;
printf("\"%s\" is NOT a integer!\n",s);
}
return 0;
}
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a;
while (1 != (scanf("%d", &a))) {
// 清空输入缓冲区
int getBuff;
while ((getBuff = getchar() != '\n') && (getBuff != EOF)) {
NULL; // Actually no statement needed here, just a dummy.
}
printf("Wrong input. Try again!\n");
}
printf("a = %d\n", a);
return 0;
}