① c語言中關於sscanf函數的運用及%n的用法
代碼如下:
#include<stdio.h>
#include<string.h>
int main (){
char s[200];
int n,wei;
memset(s,0,sizeof(s));
while(gets(s)){
int cnt=0,sum=0,num;
char *p=s;
while(sscanf(p,"%d%n",&n,&wei)==1){
sum+=n;cnt++;wei++;
if(p) p+=wei;
}
printf("%d %d ",cnt,sum);
memset(s,0,sizeof(s));
}
return 0;
}
(1)c過濾width擴展閱讀
scanf()函數是通用終端格式化輸入函數,它從標准輸入設備(鍵盤) 讀取輸入的信息。可以讀入任何固有類型的數據並自動把數值變換成適當的機內格式。
scanf()函數返回成功賦值的數據項數,出錯時則返回EOF。
其控制串由三類字元構成:
1、格式化說明符;
2、空白符;
3、非空白符;
用空白符結尾時,scanf會跳過空白符去讀下一個字元,所以必須再輸入一個數。這里的空白符包括空格,製表符,換行符,回車符和換頁符。所以如果用scanf("%d ",&a)也會出現同樣的問題。