如何正确地将小数sscanf为char

Ami*_*nos 2 c

PVS-Studio给了我一个警告:

char c;
sscanf(line, "%d", &c);
Run Code Online (Sandbox Code Playgroud)

我将%d更改为%c,但这会产生一个错误,因为"c"现在包含数字的ASCII值而不是小数,所以我回到"%d".

那么什么是正确的说明符?有另一种解决方案吗?

Cle*_*rer 5

c是一个char.你要求扫描一个int.PVS-Studio正确地警告你.变更的类型cint和扫描的%d.

  • 扫描到另一个变量并将其复制到c.不要直接扫描到c,因为这可能会导致你写入内存,你不应该. (3认同)