逸出括号中的Scanf十进制数字

问题描述 投票:3回答:1

我想从标准输入法中读取十进制数字,并用方括号括起来。当前,我正在使用scanf()和格式说明符%d。如果转换失败,则退出程序,错误代码为1。

int result = scanf(" [ %d ] ", &num);
if (result != 1)
  return 1;

例如,此输入不会触发转换失败:[ 123

我是否正确理解scanf()将方括号[]解释为字符的“集合”?有没有办法告诉scanf()从字面上解释方括号[]?还是简单(但功能全面)的解决方法?

c scanf stdio
1个回答
-1
投票

不要使用scanf。使用fgets,亲自检查方括号,然后使用strtol转换数字。您应该使用endptr来检查多余的结束符,这可能是找到结束符的有用方法。]

© www.soinside.com 2019 - 2024. All rights reserved.