我有一個具有第一線如下文本文件:錯誤在我的字符類的fscanf的使用
j0W82LBrSdUbw
基本上,它可以有很多的空間,開始然後有數字或字母的某些字符水平製表符(這個寬度是14個字符 - 固定的),然後可以存在更多的空間或製表符。整行的寬度是未知的,我的意思是它可以有任何數量的空格或製表符。我想忽略前後空格,但只將字母/數字轉換爲字符串。
我試着用字符類fscanf讀取它,如下圖所示(我嘗試了幾種方法但沒有成功),但結果不正確,它不讀取和忽略空格,也沒有讀取實際的字母。爲測試目的,我固定線路的整個長度54個字符中的所有(白色空格,數字字符都包括在內)
fscanf(fin,"%54*[ ]%[^ ]%*[ ]",s);//s is char array char s[100];
和
fscanf(fin,"%54[^ \t]",s);
1]如何分析此使用的fscanf當寬度線是固定的,已知的說54個字符。
2]當行寬未知且變量?
3]我在哪裏可以閱讀關於在scanf/fscanf中使用字符類的好文檔?
不會有一個簡單的'fscanf(fin,「%14s」,s);'工作嗎? ''%s「'轉換說明符去掉前導空格。另請注意,您的示例有13個可見字符,而不是14. – pmg
'scanf/fscanf'是解析文本數據的不好選擇。你最好用'fgets'和'sscanf';或者用'fgetc'更好。我建議你不要再用'scan'系列函數來分析你的文件。 – pmg
「'%''''scanf'轉換說明符(它不是一個正則表達式,只是一堆字符)沒有什麼特別的。它匹配(或者如果第一個字符是「^」),則匹配下列所有字符(對於'']''有一些額外的規則;並且在某些實現中,是'''')。查看任何[手冊頁](http://pubs.opengroup.org/onlinepubs/9699919799/functions/fscanf.html)瞭解詳情:我喜歡[OpenGroup's manual](http://pubs.opengroup.org/onlinepubs/) 9699919799 /)。 – pmg