// 常见算法.cpp : 定义控制台应用程序的入口点。 //回文 #include "stdafx.h" #include <iostream> using namespace std; void reverse_num(int& n) { int rem = 0;//用于表示余数 int reverse = 0;//反转后的数字 int temp = 0; temp = n; while (temp !=0) { rem = temp%10; reverse = reverse*10 + rem; temp /= 10; } if (reverse == n) { cout<<"回文数:"<<n<<endl; } else { cout<<"您输入的不是回文数"<<endl; } } int _tmain(int argc, _TCHAR* argv[]) { while (true) { cout<<"请您输入一个数字:"<<endl; int j; cin>>j; if (cin.fail()) { cout<<"ERROR"<<endl; cin.clear(); cin.sync(); } try { reverse_num(j); } catch (...) { cout<<"ERROR!!"; } } /************************************************************************/ /* cin.fail() cin.clear() cin.sync(),后两个一般一起使用 相当一 cin.ingore()的效果 */ /************************************************************************/ /* int a; cin>>a; if (cin.fail())//验证输入的类型是否匹配,例如这里是int a;如果输入一个字符,就会报错 { cin.clear(); //清除错误标志,重置流的状态 cin.sync();//清楚缓存区 int b; cin>>b; //如果不清除缓存区,这个b将不会被读入,因为每次都是从缓存区读取,不清除读取的还是原来的内容 cout<<b<<endl; } */ /************************************************************************/ /* cin 与cin.get()的区别:cin会自动忽略回车符号,cin.get()不会忽略 */ /************************************************************************/ //char k = cin.get(); //cout<<k<<endl; //char m = cin.get(); //cout<<m<<endl; //因为cin.get()不会自动忽略了回车符号,当我们输入第一个字符后,我们会输入一个回车符号,相当于m输入的就是回车符 getchar(); //getchar(); return 0; }
时间: 2024-10-05 21:54:05