C編程中cin.peek()的等效函數是什麼?我需要掃描文件'/ r'和'/ r/n'(這些是DOS文件的行標記的末尾),所以如果當前字符是'/ r',我需要「窺視」下一個字符'C等同於C++ cin.peek()
謝謝!
C編程中cin.peek()的等效函數是什麼?我需要掃描文件'/ r'和'/ r/n'(這些是DOS文件的行標記的末尾),所以如果當前字符是'/ r',我需要「窺視」下一個字符'C等同於C++ cin.peek()
謝謝!
有ungetc()
,它允許你推回字符(好像它們還沒有被讀取),當你偷看它們時。
http://www.zyba.com/reference/computing/c/stdio.h/ungetc.php
作爲替代閱讀+ ungetc()
,可以通過讀取字符文件的字符,只是跳過不必要的「\ r」和/或「\ n」或執行的任何其他特別處理。一個微不足道的狀態機可以提供幫助。
嘗試:
char c;
FILE *fp;
// opening file, etc.
if((c = getc(fp)) == '\r')
ungetc(c, fp);
或:
char c;
FILE *fp;
// opening file, etc.
fread(&c, sizeof(char), 1, fp);
if(c == '\r')
{
fseek(fp, -1L, SEEK_CUR);
fwrite(&c, sizeof(char), 1, fp);
}
,如果你需要讀取兩個值(如 「\ n \ r」),您可以使用短儲存它,和用數值測試
那些也是現代Windows系統中的行尾標記,不僅僅是「舊DOS」。 – Wyzard 2012-01-28 03:23:28
我希望你能理解正斜槓和反斜槓之間的區別,如果你想做面向字符編程...... – 2012-01-28 04:16:44