【轉】fscanf 跳過空格,讀取一行


fscanf(fp, "%s", sLineWord);

以上語句,在讀取一行數據時,如何遇到該行數據有空格,那么讀到空格處就停止,不再繼續向下讀。 

若想遇到空格繼續讀取,讀取完整的一行數據,則用如下語句:

fscanf(fp, "%[^\n]%*c", sLineWord);

fscanf用於讀取字符串數據流,遇到空白字符(空格' '; 制表符'\t'; 新行符'\n')就停止,若要讀取完整的一行數據,可以使用格式控制("%[^\n]%*c"),或者使用行讀取函數(getline)。

 

格式控制說明:%[ ]表示讀取指定字符集的文本,例如%[0-9]表示僅讀取數字,遇到非數字字符就停止;%[a-zA-Z]表示讀取字符,遇到非字母字符就停止)。第一個字符是'^',表示反向讀取,讀取指定字符集以外的文本,遇到指定字符集就停止。*表示忽略讀取的字符,就是說讀取指定的字符但不保存到變量中。
%[^\n]表示讀取'\n'之外的所有字符;之后的%*c表示忽略讀取的'\n',就是說讀取'\n'但不保存。
%*[^\n]%*c表示跳過一行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM