c-扫描转义括号中的十进制数字



我想从stdin中读取用方括号括起来的十进制数字。目前,我使用的是带有格式说明符%dscanf()。如果转换失败,我将退出程序,并返回错误代码1。

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

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

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

不要使用scanf。使用fgets,自己检查方括号,并使用strtol转换数字。您应该使用endptr来检查是否有额外的结束字符,这可能是查找结束字符的有用方法]。

相关内容

  • 没有找到相关文章

最新更新