3 回答

TA貢獻1853條經驗 獲得超18個贊
int get();
istream& get ( char& c );
istream& get ( char* s, streamsize n );
istream& get ( char* s, streamsize n, char delim );
istream& get ( streambuf& sb);
istream& get ( streambuf& sb, char delim );
可以從輸入設備獲得一個字符,也可以讀取字符串。默認采用'\n'作為分隔符。
使用get函數時,get函數與getline接受的參數相同,解釋參數的方式也相同,并且都讀取到行尾,但是get不再讀取并丟棄換行符,而是將其留在輸入隊列中。所以經常出問題。由于第一次調用后,換行符留在隊列中,因此第二次調用時看到第一個字符邊是換行符,因此get認為已經到達隊尾,而沒有發現任何可讀取的內容。如果不借助于幫助,get將不能跨過該換行符??梢圆捎胓et的另一種重載的形式來讀取這個換行符,然后為下一行的輸入做好準備。

TA貢獻1898條經驗 獲得超8個贊
重定位流上的文件指針
用 法: int fseek(FILE *stream, long offset, int fromwhere);
描 述: 函數設置文件指針stream的位置。如果執行成功,stream將指向以fromwhere為基準,偏移offset個字節的位置。如果執行失敗(比如offset超過文件自身大小),則不改變stream指向的位置。
返回值: 成功,返回0,否則返回其他值。
int fseek( FILE *stream, long offset, int origin );
第一個參數stream為文件指針
第二個參數offset為偏移量,整數表示正向偏移,負數表示負向偏移
第三個參數origin設定從文件的哪里開始偏移,可能取值為:SEEK_CUR、 SEEK_END 或 SEEK_SET
SEEK_CUR: 當前位置
SEEK_END: 文件結尾
SEEK_SET: 文件開頭
其中SEEK_CUR,SEEK_END和SEEK_SET依次為1,2和0
添加回答
舉報