C++ 如何使用%d格式说明符处理字符?
我使用C++ 如何使用%d格式说明符处理字符?,c++,c,C++,C,我使用scanf从文件中获取变量值。它应该继续读取文件,直到遇到%。如何比较% scanf("%d",&a); if (a=='$') terminate ; ?? 如果您的情况不是将a与$进行比较,那么可能的解决方案将不起作用 更改为: if(a=='$) =赋值运算符 =相等运算符 编辑 执行相同操作以比较% 如果(a=='%')你不能%d不会转换%或$。换句话说,它不会将任何内容放入a(更不用说您应该传递&a)。当转换失败时,它将保持在stdin,因此您仍然可以随后读取它
scanf
从文件中获取变量值。它应该继续读取文件,直到遇到%
。如何比较%
scanf("%d",&a);
if (a=='$') terminate ; ??
如果您的情况不是将
a
与$
进行比较,那么可能的解决方案将不起作用
更改为:if(a=='$)
- =赋值运算符
- =相等运算符
执行相同操作以比较
%
如果(a=='%')
你不能<代码>%d不会转换%
或$
。换句话说,它不会将任何内容放入a(更不用说您应该传递&a
)。当转换失败时,它将保持在stdin
,因此您仍然可以随后读取它
要知道转换是否成功,请检查scanf()
的返回值。它返回成功的CNV版本数
if (1 != scanf("%d", &a)) {
char c = 0;
scanf(" %c", &c);
if (c == '%' || c == '$') {
/* done */
}
}
将其作为一个=='$'进行尝试,或者将读取的值存储为一个整数,然后检查您是否尝试过
==
?另外a==%
。