我想从标准输入法中读取十进制数字,并用方括号括起来。当前,我正在使用scanf()
和格式说明符%d
。如果转换失败,则退出程序,错误代码为1。
int result = scanf(" [ %d ] ", &num);
if (result != 1)
return 1;
例如,此输入不会触发转换失败:[ 123
我是否正确理解scanf()
将方括号[]
解释为字符的“集合”?有没有办法告诉scanf()
从字面上解释方括号[]
?还是简单(但功能全面)的解决方法?
不要使用scanf。使用fgets,亲自检查方括号,然后使用strtol转换数字。您应该使用endptr来检查多余的结束符,这可能是找到结束符的有用方法。]