如何读取整数直到行尾?

zaz*_*zky 0 c++ input

我正在尝试在图表上做 bfs,给定一个邻接列表。这是一个示例输入。

1 2 3
2 4
1
2 3 4
Run Code Online (Sandbox Code Playgroud)

我知道行数,n(verices 的数量)。每行包含 0 到 n-1 个整数。

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

 for(i=0;i<n;i++)
{
   while(cin>>v)
   {insert(i,v);}
}
Run Code Online (Sandbox Code Playgroud)

我想分别处理每一行。在搜索中,我找到了向量和 stl 的答案。如果有人能提出更优雅的解决方案,那就太好了。

谢谢。

小智 6

首先,使用 getline 读取一行:

string line;
getline( cin, line );     // should be error handling here
Run Code Online (Sandbox Code Playgroud)

然后,使用 istringstream 从行中读取整数:

istringstream is( line );
int n;
while( is >> n ) {
  // do something with n
}
Run Code Online (Sandbox Code Playgroud)