簡體   English   中英

sscanf的width選項不起作用

[英]The width option of sscanf does not work

我想使用sscanf的寬度選項( http://en.cppreference.com/w/c/io/fscanf )來控制要讀取的最大字節數。 但以下讀取超過3個字節。

#include <stdio.h>

int main() {
  long long ll;
  char str[4];
  int pos;  
  sscanf(" 281", "%3llx%n", &ll, &pos);
  printf("%llx %d\n", ll, pos);
  sscanf(" 281", "%3s%n", &str, &pos);
  printf("%s %d\n", str, pos);
  return 0;
}

它打印出以下內容。

281 4
281 4

我以為它打印了

28 3
28 3

這是正確使用sscanf嗎? fscanf以類似的方式工作。

一些(大多數)格式隱式跳過空格(基本上除%c%[之外的所有內容)。 跳過的空白不計入最大字段寬度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM