從檔案讀取字串總結

2021-05-25 09:30:29 字數 711 閱讀 7032

從檔案讀取字串:

fscanf

1.遇到空格和換行等不可見字元結束,不會讀入換行符,末尾新增'/0'

2.兩行中間的乙個空行或多個空行不會讀入

3.當檔案末尾有乙個空行或多個空行時會讀一次,但不會讀入任何內容,目標字串不變,也不會新增'/0'

fgets(str,n,fp)

1.只有遇到換行(/x0d/x0a 和 /x0a)才結束,遇到換行時讀入乙個換行符'/x0a',不會讀入'/x0a'前的'/x0d',末尾新增'/0'

2.沒遇到換行時最多讀入n-1個字元,末尾加'/0'

3.中間的空行讀入'/x0a'+'/0',strlen要把'/x0a'計算在內,strlen只有遇到'/0'才結束

4.最後乙個空行不讀入任何內容,目標字串不變,也不會新增'/x0a'和'/0'

5.如果某行有n-1個,則這行會讀成2個字串,

第1個字串為前n-1個+'/0',第2個字串為'/x0a'+'/0',

如果這行是最後一行則第2個字串沒有內容,即符合條件4

當沒有空格等不可見字元時用fscanf較方便,有空格時只能用fgets

用fgets時可用下面的方法去掉'/x0a'

len=strlen(str);

if(str[len-1]=='/x0a')str[len-1]='/0';

**

從檔案中讀取字串

問題 如何從磁碟檔案中讀取字串兒,然後按行將其倒序輸出?下面一段材料取自陳壽 三國志 卷三十五諸葛亮傳,我把它分成了10段,現在要求從磁碟檔案中讀取這段文字,然後按照一定的規則倒序輸出。比如說,如果我要求輸出3行,系統會依次輸出第10 9 8三行 如果我要求輸出20行,則系統會依次輸出10 9 8 ...

從標準輸入讀取字串

11 3 編寫乙個函式,從標準輸入讀取乙個字串,把字串複製到動態記憶體分配的記憶體中,並返回該字串的拷貝,這個函式不應該對讀入字串的長度作任何限制!這個問題比較簡單,需要注意字串輸入的結束處理和記憶體空間的申請的時機。include include include typedef short int...

C 讀取字串

我們在使用鍵盤輸入字串的時候,輸入流對於字串的讀取有幾種不同的實現方式。cin cin 在讀取字串時使用空白 空格 製表符和換行符 來確定字串的結束位置,這說明cin在獲取字元陣列輸入時只能讀取乙個單詞。而讀取該單詞後,cin將該字串放到陣列中,並在結果自動新增空字元。so,在某些時候,我們需要使用...