S-Code Application Level Functions


int s_getc(FILE *fp, int catg);
int s_getchar(int catg);

s_getc 從 fp 中讀入字元, 假設檔案 fp 內除了 ASCII 和 Latin-1 就是以 catg 編碼的中文. 假如碰到西方文字, 就讀入一個字元; 否則一次讀入兩個字元. 無論如何, 讀入的字元都轉成一個整數形態, 還會的值就是此整數, 也就是一個 S-code. s_getchar 就是從 stdin 讀入, 其他皆與 s_getc 相同.

由於 S-code 與 ASCII 相容, 所以如果讀進來的是 NULL, EOF, \n, \t, \0, 等特殊字元或控制字元, 則 S-code 的值還是這些值. 也就是說, 除了您在程式中將以前慣用的 char 型態轉成 int 之外, 其他的程式寫法大約都可沿用. 例如以下的語句.


	while ((c=s_getchar(BIG5)) != EOF)
	while (*c++ != '\0')


int s_putc(int s, FILE *fp, int catg);
int s_putchar(int s, int catg);

s_putc 將一個 S-code 寫出去到 fp 中. 如果是西方文字, 就直接輸出了, 否則就轉換成某種中文編碼 catg. s_putchar 亦同, 只是專門寫到 stdout.

以上的方程並不檢查 fp 是否存在, 是否可讀寫.

Created: Jan 14, 1996
Last Revised: Jan 14, 1996
© Copyright 1996 Wei-Chang Shann

shann@math.ncu.edu.tw