Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用%d格式说明符处理字符?_C++_C - Fatal编程技术网

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==%