目前日期文章: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) 人氣()

找更多相關文章與討論