2015年11月28日 星期六

sscanf in C language

這個是Jack給的一個有趣程式, 以底下的範例來說
輸入的字串可是是"
#include <string.h>
#include <stdio.h>
int main(int argc, char** argv){
        int b[5] = {0, 0, 0, 0, 0};
        int ret;

        if(argc == 2){
                ret = sscanf( argv[1], "%d,%d,%d,%d,%d\n", &b[0], &b[1], &b[2], &b[3], &b[4]);
                printf("ret = %d, b0=%d b1=%d b2=%d b3=%d b4=%d\n", ret, b[0], b[1], b[2], b[3], b[4] );
        }
}


執行狀況如下:
./test

./test 1
ret = 1, b0=1 b1=0 b2=0 b3=0 b4=0

./test 1,2
ret = 2, b0=1 b1=2 b2=0 b3=0 b4=0

./test 1,2,3
ret = 3, b0=1 b1=2 b2=3 b3=0 b4=0

./test 1,2,3,4
ret = 4, b0=1 b1=2 b2=3 b3=4 b4=0

./test 1,2,3,4,5
ret = 5, b0=1 b1=2 b2=3 b3=4 b4=5

./test 1,2,3,4,5,6
ret = 5, b0=1 b1=2 b2=3 b3=4 b4=5


sscanf的函式宣告型態如下
int sscanf(const char *str, const char *format, ...);
使用它時需要
#include <stdio.h>

沒有留言:

一個小故事讓我們明白資金流通的意義

“又是炎熱小鎮慵懶的一天。太陽高掛,街道無人,每個人都債台高築,靠信用度日。這時,從外地來了一位有錢的旅客,他進了一家旅館,拿出一張1000 元鈔票放在櫃檯,說想先看看房間,挑一間合適的過夜,就在此人上樓的時候---- 店主抓了這張1000 元鈔,跑到隔壁屠戶那裡支付了他欠的肉錢...