簡體   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