u
在 C++ 中,如果我从一个字符串中读取一个整数,那么我是否使用或d
作为转换说明符似乎并不重要,因为两者都接受负整数。
#include <cstdio>
using namespace std;
int main() {
int u, d;
sscanf("-2", "%u", &u);
sscanf("-2", "%d", &d);
puts(u == d ? "u == d" : "u != d");
printf("u: %u %d\n", u, u);
printf("d: %u %d\n", d, d);
return 0;
}
我深入挖掘以发现是否有任何区别。我找到
int u, d;
sscanf("-2", "%u", &u);
sscanf("-2", "%d", &d);
相当于
int u, d;
u = strtoul("-2", NULL, 10);
d = strtol("-2", NULL, 10);
使用这些转换说明符进行解析(即传递给-type 函数的格式)之间u
和使用时有什么区别吗?它是什么?d
scanf
C 和 C++ 的答案是一样的,对吧?如果没有,我对两者都感兴趣。