2017-03-07 74 views
0

我试图在给定邻接列表的图上执行bfs。 以下是一个示例输入。如何读取整数直到行尾?

1 2 3 
2 4 
1 
2 3 4 

我知道行数n(版本数)。 每行包含0到n-1个整数。

这是一个尝试,但它不工作,因为它读取所有的整数,直到输入结束。

for(i=0;i<n;i++) 
{ 
    while(cin>>v) 
    {insert(i,v);} 
} 

我想单独处理每条线。 在搜索时,我找到了向量和stl的答案。如果有人能想出更优雅的解决方案,那将会很好。

感谢。

+0

什么是不优雅与使用标准库:

string line; getline(cin, line); // should be error handling here 

然后,使用istringstream读取行的整数?使用它应该使代码约4行。 – NathanOliver

+0

*“这是一个尝试,但它不起作用,因为它读取所有整数直到输入结束。”* - 不正确。发布一个MCVE来证明这一点。 –

回答

4

首先,阅读函数getline线:

istringstream is(line); 
int n; 
while(is >> n) { 
    // do something with n 
}