C ++相当于fscanf()?

请不要说它是fscanf(); P

我正在尝试替换这一行:

if ( fscanf(fp, "P%c\n", &ch) != 1 ) 

如果我理解正确,它会尝试读入一个字符并将其存储到&ch,只要它在’P’和’\ n’之间。 是对的吗? 如果成功,它返回1(它读取的字符数)?

我正在尝试提出一个C ++版本。 有没有简单的方法来做这样的格式化读取? 或者我需要使用fstream,operator >>和嵌套的if语句吗?

带有类型检查的安全C ++替代方法是std :: stringstream 。

在Visual Studio中,安全但不可移植的等效函数是fscanf_s。

通常,为了便于移植,您可以使用其中一个流类,正如您所注意到的,正确格式化可能会很麻烦。