如cin如何实现如下的输入?
当用scanf("%d,%d",&a,&b)要求输入时,需要在ab之间输入一个“,”号,用cin如何实现这个功能呢?
谢谢!
问题点数:20、回复次数:16Top
1 楼xiao_xiao_zi(笑小子)回复于 2005-05-23 08:27:40 得分 2
int a,b;
char p;
cin>>a>>p>>b;Top
2 楼lw1a2(一刀 现在改六点下班了:()回复于 2005-05-23 08:33:46 得分 0
这个还是用scanf吧Top
3 楼lw1a2(一刀 现在改六点下班了:()回复于 2005-05-23 08:34:46 得分 0
xiao_xiao_zi(笑小子) 的方法不错Top
4 楼xiaoluoli(C/C++思考)回复于 2005-05-23 09:58:06 得分 0
可以直接 cin>>a>>b;
输入:12,2
是不是可以,试试看,我这没vcTop
5 楼yanyuxin(焰.驭心)回复于 2005-05-23 10:11:17 得分 0
cin 默认 空格和制表符为分隔符.
只见过控制cout显示格式的方法.
cin没见过.Top
6 楼foochow(无聊,灌水......)回复于 2005-05-23 11:24:03 得分 0
xiaoluoli(C/C++思考) 方法试了下不行,不知道还有谁想出来什么办法没^_^
UP..Top
7 楼yanyuxin(焰.驭心)回复于 2005-05-23 13:19:51 得分 0
看来 只有自己定义方法实现了.Top
8 楼lingzantia(迟早是高手)回复于 2005-05-23 13:39:12 得分 0
cin >> a ;
cin.get();
cin >> b;Top
9 楼hu_vane(边学边发现自己的无知)回复于 2005-05-23 14:14:22 得分 0
xiao_xiao_zi(笑小子) 的方法肯定可以。Top
10 楼qsilence(石上松)回复于 2005-05-23 15:44:05 得分 0
string tmp;
getline(cin,tmp);
所有输入都进来了,也用到了cin,呵呵Top
11 楼yanyuxin(焰.驭心)回复于 2005-05-23 16:52:46 得分 5
#include<iostream.h>
void main()
{
int a,b;
cin>>a;
cin.ignore(1,',');//读到一个逗号分隔符时,结束读取。
cin>>b;
cout<<a<<" "<<b<<endl;
}
//这个程序中空格和制表符同样做为正常分隔符。Top
12 楼llf_hust()回复于 2005-05-23 16:57:22 得分 0
同意 : yanyuxin(焰.驭心)Top
13 楼yanyuxin(焰.驭心)回复于 2005-05-23 17:04:31 得分 0
改成 cin.ignore(1),效果也一样,表示忽略后面的一个字符。Top
14 楼lucymary1982()回复于 2005-05-23 17:04:42 得分 0
直接cin>>a>>b;就行了Top
15 楼naturemickey(米老鼠)回复于 2005-05-23 18:52:53 得分 13
下面这个程序在VC6.0和GCC v3.3.3中编译并正确运行。
输入:12,23
输出:12 23
#include <iostream>
int main(void)
{
int a[2];
int idx = 0;
char c;
while(1)
{
c = std::cin.get();
if(c <= '9' && c >= '0') std::cin.putback(c);
else if(c == ',') continue;
else if(c == '\n') break;
std::cin >> a[idx++];
}
std::cout << a[0] << ' ' << a[1] << std::endl;
return 0;
}Top
16 楼myxd(c++)回复于 2005-05-25 00:30:16 得分 0
热心人不少呀,谢谢大家了,看了大家的回答,还比较满意吧,没想到在c下如此简单的一个输入语句在C++中这么麻烦,看还有高人枝招没有,周末结贴!
再次感谢大家了!Top




