小白,关于cin的有关问题
小白求助,关于cin的问题
是这样的我想利用cin由用户输入19951/1,
然后得到的是1995和1和1,
也就是用户输入年月日的时候年月份之间带‘/’,而得到的是不带‘/’的年月日。
不知道cin可以做到么,还请大家帮一下忙,谢谢。
------解决思路----------------------
仅供参考
------解决思路----------------------
可以,或者加 locale 让 cin 把 / 识别为分隔符。
是这样的我想利用cin由用户输入19951/1,
然后得到的是1995和1和1,
也就是用户输入年月日的时候年月份之间带‘/’,而得到的是不带‘/’的年月日。
不知道cin可以做到么,还请大家帮一下忙,谢谢。
------解决思路----------------------
仅供参考
#include <iostream>
#include <string>
using namespace std;
int main(){
char year[10]={0};
char month[10]={0};
char day[10]={0};
char ch;
int split_cnt=0;
int idx=0;
while( ((ch=cin.peek()) != '/')
------解决思路----------------------
(split_cnt < 2) ){
if(ch == '\n') //换行符,输入结束
break;
else if(ch == '/' ){ //年月日分割符
idx=0;
split_cnt++;
cin.get();
continue;
}
if(split_cnt == 0) //年
cin.get(year[idx++]);
else if(split_cnt == 1) //月
cin.get(month[idx++]);
else //日
cin.get(day[idx++]);
}
cout << "year:" << year << " month:" << month << " day:" << day << endl;
return 0;
}
------解决思路----------------------
可以,或者加 locale 让 cin 把 / 识别为分隔符。