|
|
1
1
当程序进入主循环时,它首先用输入流执行take,并将begin作为参数。match返回true,get的调用次数是begin的5倍。 然后它再次通过循环。它再次调用match。此时,位置为5,即开始的长度。它试图读取len(begin)字符,但您的stringstream没有那么多字符,因此它将循环留在位置-1,并设置一个错误标志。 因为流是一个错误状态,下面的seekg调用没有预期的效果,解释了程序的行为。 |