目前日期文章:201506 (3)

瀏覽方式: 標題列表 簡短摘要

不知道為什麼網路上流傳的這段程式碼有問題,而且好像都沒人發現。只要下 command 都會回傳 ERROR,而不是 OK。其實只是 let $c=$left($x,c) 寫錯了,應該是 let $x=$left($x,c) 才對,如此造成無法轉換換行字元而發生錯誤。

####################################################
#
# command - comgt script for command interaction
#
# Copyright (C) 2006  Paul Hardwick 
#
###################################################
print "\nType command at prompt.\n"
print "Empty input terminates.\n"
print "#################\n"
opengt
set com 115200n81
set senddelay 0.05
waitquiet 1 0.2

:loop1
    print "Command: "
    input $x
    let c=len($x)
    if c=1 goto end
    let c=c-1
    let $x=$left($x,c)
    send $x
    send "^m"
    :loop2
        print $a
        get 1 "^m" $a
        let a=len($a)
        if a > 0 goto loop2
    goto loop1
:end
print "#################\n"

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

讀取超長字串時,fget 會如何處置呢?現在有一個文字檔,只有一行 1234567812345678....。使用下列程式碼執行,暫存陣列數量為 9,一次只會讀取 8 個字元,最後再補一個 0 做結束字元。

int main(int argc, char *argv[])
{
    FILE*fp;
    char buf[9];
    fp = fopen(argv[1], "r");
    if (fp) {
        while (fgets(buf, sizeof(buf), fp) != NULL) {
            printf("%s\n", buf);
        }
        fclose(fp);
    }
    return 0;
}
$$ ./a.out aaa
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()


台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()