2012-01-28 107 views
3

C編程中cin.peek()的等效函數是什麼?我需要掃描文件'/ r'和'/ r/n'(這些是DOS文件的行標記的末尾),所以如果當前字符是'/ r',我需要「窺視」下一個字符'C等同於C++ cin.peek()

謝謝!

+2

那些也是現代Windows系統中的行尾標記,不僅僅是「舊DOS」。 – Wyzard 2012-01-28 03:23:28

+3

我希望你能理解正斜槓和反斜槓之間的區別,如果你想做面向字符編程...... – 2012-01-28 04:16:44

回答

1

作爲替代閱讀+ ungetc(),可以通過讀取字符文件的字符,只是跳過不必要的「\ r」和/或「\ n」或執行的任何其他特別處理。一個微不足道的狀態機可以提供幫助。

0

嘗試:

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」),您可以使用短儲存它,和用數值測試