如果有一种输入不告诉你输入整数的个数,
直接以回车符结尾的输入的话,
对付这种情况,一种可以想到的方法是封装输入过程,
通过getchar()是否为回车判断一次输入是否完成,
一次输入的数据通过小算法来实现并存储。
代码:
直接以回车符结尾的输入的话,
对付这种情况,一种可以想到的方法是封装输入过程,
通过getchar()是否为回车判断一次输入是否完成,
一次输入的数据通过小算法来实现并存储。
代码:
bool Input()//转换成数字
{
tp=1;
int num=0;
char c=getchar();
if(c==EOF) return false;
num=c-'0';
while ( (c=getchar())!='\n' )
{
if(c==' ') { seq[tp++]=num; num=0; }
else num=num*10+c-'0';
}
seq[tp++]=num;
///for(int i=0;i<tp;i++) cout<<seq[i]<<" ";puts("");
return true;
}
还有一种可能效率上慢一点但比较简单不易出错的方法:
字符串流,构造字符串流,再通过相应的转换流转换成想要的数据类型(比如数字)。
直接上代码体会:
for (string strLine; getline(cin, strLine); cout << '0' << endl) {
//按要求回应输入的字符串行
cout << strLine << endl;
//构造字符串流,以遍转换为数字
istringstream iss(strLine);
//将字符串转为数字,逆序(最底的在最前)存储在Stack里
deque<int> Stack;
for (int nDiam; iss >> nDiam; Stack.push_front(nDiam));}