请教大家个问题,谢谢了

llm308 2006-10-25 09:07:36
7 0 1 0 2 0 4 2 4 2 3 3 1 4 3
5
0 2
0 1 1 5 2 5 2 1
9
0 1 0 2 0 3
0 4 1 4 2 1
2 0
3 0
3
第一个数字代表后面有7对数字,7对数字对输入完毕后,开始新的输入,5,代表后面有5个数字对...
这些数据从控制台输入得到,其中数字之间既可以用空格,又可以用回车,最后一个数字对输入完毕后,按回车自动跳出输入。请问大家如何利用C++进行控制啊,谢谢大家了
...全文
428 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
amdk_7 2006-12-24
  • 打赏
  • 举报
回复
JF 吧。。。
ReverseEngineering 2006-12-24
  • 打赏
  • 举报
回复
这个问题没什么实际意义!
yufengchen927 2006-11-27
  • 打赏
  • 举报
回复
UP
LiChenYue 2006-11-23
  • 打赏
  • 举报
回复
蹭点分!
llm308 2006-10-25
  • 打赏
  • 举报
回复
嗯,嗯,好的,谢谢大家
Jokar 2006-10-25
  • 打赏
  • 举报
回复
上面的例程仅提供参考, 希望lz对C++能产生兴趣和热情;
Jokar 2006-10-25
  • 打赏
  • 举报
回复
其实实现方法很多~
另外:善问是重要的,但是不能什么都问,一定要自己认真想过;
C++ 是非常有趣的东西, 当然只有自己做出来才能真正体会到这一点
Jokar 2006-10-25
  • 打赏
  • 举报
回复
// 0.cpp : defines entry point for application;


#include <iostream>
#include <vector>
#include <utility>


using namespace std;


class CInputBuffer
{
public:
vector<pair<int, int> > m_vecIntegerPairs;

};

const istream& operator>> (istream &is, CInputBuffer &rhs)
{
int iCnts;
int iFirst, iSecond;

while (true)
{
is >> iCnts;
if (0 == iCnts)
{
break;
}

while (iCnts --)
{
is >> iFirst >> iSecond;
rhs.m_vecIntegerPairs.push_back(make_pair(iFirst, iSecond));
}

}

return is;
}

const ostream& operator<< (ostream &os, const CInputBuffer &rhs)
{
const vector<pair<int, int> > vecTemplate = rhs.m_vecIntegerPairs;
vector<pair<int, int> >::const_iterator it = vecTemplate.begin();

os << vecTemplate.size() << " pairs:" << endl;

while (it != vecTemplate.end())
{
os << '(' << it->first << ',' << it->second << ')' << endl;
it ++;
}


return os;
}


int main(void)
{

CInputBuffer dataBuffer;

cout << "###enter pairs###" << endl;
cin >> dataBuffer;
cout << "###enter finished###" << endl;
cout << "###show all pairs###" << endl;
cout << dataBuffer;
cout << "###show pairs finished###" << endl;

return 0;
}


运行结果:

###enter pairs###
7 0 1 0 2 0 4 2 4 2 3 3 1 4 3
5
0 2
0 1 1 5 2 5 2 1
9
0 1 0 2 0 3
0 4 1 4 2 1
2 0
3 0
3 10
0 // 要输入对数为0时,代表结束输入
###enter finished###
###show all pairs###
21 pairs:
(0,1)
(0,2)
(0,4)
(2,4)
(2,3)
(3,1)
(4,3)
(0,2)
(0,1)
(1,5)
(2,5)
(2,1)
(0,1)
(0,2)
(0,3)
(0,4)
(1,4)
(2,1)
(2,0)
(3,0)
(3,10)
###show pairs finished###
Press any key to continue

beginnow 2006-10-25
  • 打赏
  • 举报
回复
void main()
{
bool blnTemp = true;
int nTotal = 0;

while(blnTemp)
{
cout<<"input Total:";
cin>>nTotal;

if(nTotal <= 0)
blnTemp = false;

for(int i = 0; i < nTotal * 2; i ++)
{
int temp;
cin>>temp;
}
}
}
飞哥 2006-10-25
  • 打赏
  • 举报
回复
回复人:goodluckyxl(被人遗忘的狗) ( 两星(中级)) 信誉:166 2006-10-25 09:35:00 得分:0
?
这个自己搞不定
以后只能做好你的本分软件民工
---------------
up~
apricot0819 2006-10-25
  • 打赏
  • 举报
回复
还真不明白楼主想法,

那楼主光用回车哪样判断所有的输入完成了呢???
llm308 2006-10-25
  • 打赏
  • 举报
回复
多谢楼上的,可是要求的是在每次输入数字对之后,没有这个是否继续呀,只是靠回车,而且这几组都是一起输入的呀
beginnow 2006-10-25
  • 打赏
  • 举报
回复
void main()
{
bool blnTemp = true;
int nTotal = 0;
char strTemp;

while(blnTemp)
{
cout<<"input Total:";
cin>>nTotal;
cout<<endl;

for(int i = 0; i < nTotal * 2; i ++)
{
int temp;
cin>>temp;
}

cout<<"countinue, Y/N"<<endl;
cin>>strTemp;
cout<<endl;

if(!(strTemp == 'Y' || strTemp == 'y'))
blnTemp = false;

}
}
apricot0819 2006-10-25
  • 打赏
  • 举报
回复
冒似简单!!!!
llm308 2006-10-25
  • 打赏
  • 举报
回复
而且输入的数字对是不定的啊,还有最后一个数字对输入完后,要回车结束。老大给点儿思路就行呀。
llm308 2006-10-25
  • 打赏
  • 举报
回复
呵呵,我是真想不出来好的办法了,还有点儿晕了,楼上大哥,只要给我些思路就行呀,谢谢了。
goodluckyxl 2006-10-25
  • 打赏
  • 举报
回复
这个自己搞不定
以后只能做好你的本分软件民工

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧