2012-03-03 39 views

回答

4

如果我正確理解你的問題,你可以使用一個character class

fscanf(list_in, "%[^ \r\n\t]", keywords); 

當然,避免緩衝區溢出(f)scanf時,應始終設置最大長度,如下所示:

char keywords[81]; 

fscanf(list_in, "%80[^ \r\n\t]", keywords); 

編輯:如果你想包括字符串中的尾隨空白字符,你可以使用%c指令分別讀入一個char變量,無論是處理它的方式或追加到字符串:

char keywords[82], space; 
int n; 

fscanf(list_in, "%80[^ \r\n\t]%c", keywords, &space); 

n = strlen(keywords); 
keywords[n] = space; 
keywords[n+1] = '\0'; 

(當然,要格外小心,你也應該檢查的fscanf返回值,以確保你沒有,例如,打的輸入文件的末尾。)

+0

感謝您抽出一looka因此,如果我理解正確,你的代碼將忽略空格,換行符,等標籤? 然而,我應該更加精確!我要求讀入trhe文件的字是「int」,而不是「int」,fscanf似乎在任何情況下都是成功的,也許我應該手動檢查字符? – 2012-03-03 22:19:04

+0

你的意思是你想要_include_字符串中的終止空白字符,而不是_excluding_它? – 2012-03-03 22:24:20

+0

是的,正是我期待的!我試圖upvote你,但顯然我沒有足夠的代表!儘管乾杯! – 2012-03-03 22:37:37

相關問題