Question 1:
#include <iostream>using namespace std;void main()
{
int i=0;
char c=0;
cin>>i;
cin>>c;
cin>>c;
cin>>c;
}如上代码,如果在要要求输入i的时候输入了一个字符例如 'c' ,那么后面所有的"cin>>c;"都无法执行,是什么原因?该如何改正?Question 2:
用typedef可以为一个类型再取一个名字,但是怎么对 template< class TYPE, class ARG_TYPE >
class CArray : public CObject用typedef给它另取一个名字呢?
我用 WinMe VC6.0
#include <iostream>using namespace std;void main()
{
int i=0;
char c=0;
cin>>i;
cin>>c;
cin>>c;
cin>>c;
}如上代码,如果在要要求输入i的时候输入了一个字符例如 'c' ,那么后面所有的"cin>>c;"都无法执行,是什么原因?该如何改正?Question 2:
用typedef可以为一个类型再取一个名字,但是怎么对 template< class TYPE, class ARG_TYPE >
class CArray : public CObject用typedef给它另取一个名字呢?
我用 WinMe VC6.0
后面的输入。2. typedef template<class TYPE, class ARG_TYPE> class CArray TemplArray;
然后就可以使用TemplArray这个名字了,比如:TemplArray<int, char> Array;
Question 1、不好意思我说得不太清楚,与其说是无法 执行 ,不如说是它自己执行,也就是在执行得时候自动跳过。
例如这样:
c=0;
cin>>i; // 这里我输入 'c' ,程序并不暂停,而是直接跳过 i的值不变
while(c!='y'&&c!='n')
{
cout<<"Yes or No?[y,n]"<<endl;
cin>>c; //这里也直接跳过,不给我输入的机会,程序进入死循环!!
}
Question 2、你的回答自己编译通过了吗?好像不行啊.
一下,果然如你所说。看来使用 cin 确实有问题。还是用传统的C函数scanf getchar好用。2、是我说错了。
可以写一段检测输入是否合法的代码。