getc、getwc
從資料流讀取一個字元。
int getc(
FILE *stream
);
wint_t getwc(
FILE *stream
);
參數
- stream
輸入資料流。
傳回值
傳回讀取的字元。 為表示讀取錯誤或文件關閉條件, getc 會傳回 EOF、 getwc 會傳回 WEOF。 對於 getc,請使用 ferror 或 feof 來檢查錯誤或檔案結尾。 如果 stream 為 NULL,getc 和 getwc叫用無效參數處理常式,如參數驗證 中所述。 如果允許繼續執行,這些函式會傳回 EOF(或 getwc 的 WEOF),並將 errno 設定為 EINVAL。
如需更多關於這些和其他回傳碼的資訊,請參閱 _doserrno 、 errno 、 _sys_errlist 和 _sys_nerr (_doserrno, errno, _sys_errlist, and _sys_nerr) 。
備註
每個常式從目前位置的檔案讀取單一字元並將相關檔案指標 (如果有定義)指向下一個字元。 這個檔案與 stream 相關聯。
這些函式鎖定呼叫的執行緒並具備執行緒安全。 如需非鎖定版本,請參閱 _getc_nolock、_getwc_nolock。
再來為常式特定圖例。
常式 |
備註 |
---|---|
getc |
與 fgetc相同,不過,實作為函式和巨集。 |
getwc |
getc寬字元版本。 讀取多位元組字元或寬字元根據是否 stream 在文字模式或二進位模式下開啟。 |
一般文字常式對應
TCHAR.H 常式 |
_UNICODE 和 _MBCS 未定義 |
_MBCS 已定義 |
_UNICODE 已定義 |
---|---|---|---|
_gettc |
getc |
getc |
getwc |
需求
常式 |
必要的標頭 |
---|---|
getc |
<stdio.h> |
getwc |
<stdio.h> 或 <wchar.h> |
如需其他相容性資訊,請參閱<簡介>中的相容性。
範例
// crt_getc.c
// Use getc to read a line from a file.
#include <stdio.h>
int main()
{
char buffer[81];
int i, ch;
FILE* fp;
// Read a single line from the file "crt_getc.txt".
fopen_s(&fp, "crt_getc.txt", "r");
if (!fp)
{
printf("Failed to open file crt_getc.txt.\n");
exit(1);
}
for (i = 0; (i < 80) && ((ch = getc(fp)) != EOF)
&& (ch != '\n'); i++)
{
buffer[i] = (char) ch;
}
// Terminate string with a null character
buffer[i] = '\0';
printf( "Input was: %s\n", buffer);
fclose(fp);
}
Input: crt_getc.txt
Line one.
Line two.
Output
Input was: Line one.