繁体   English   中英

我该如何限制fscanf解释的字符数?

[英]How should i limit the number of characters interpretted by fscanf?

我正在编写一个程序,以便从stdin读取内容,然后将读取的内容写入stdout ,以转义找到的所有转义十六进制数字。 我要读取的所有数字都是8位。 这就是我到目前为止所拥有的

while((c = fgetc(stdin)) != EOF) {
    if(c == '%') {
        fscanf(stdin,"%x",&r);
        printf("%i \n",r);
    }
}

除了我在标准输入中写入类似%FFF之类的内容时,它会以3位数的十六进制数字读取的事实有效。 我应该如何限制fscanf仅读取2个字符? 我曾考虑过将接下来的2个字符读入缓冲区并sscanf'ing ,但这对我来说感觉并不好。

如果您想让scanf (et al)仅读取两个字符,请告诉它这样做:

scanf("%2x", &r);

有关scanf格式的信息,请参阅此参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM