我有一個需要從中提取單詞的輸入文件。單詞只能包含字母和數字,因此其他任何內容都將被視爲分隔符。我試過fscanf,fgets + sscanf和strtok,但似乎沒有任何工作。在C中讀取文件
while(!feof(file))
{
fscanf(file,"%s",string);
printf("%s\n",string);
}
上面一個顯然行不通,因爲這樣我替換此行不使用任何分隔符:
fscanf(file,"%[A-z]",string);
它讀取的第一個字不錯,但文件指針不斷倒帶等等它一遍又一遍地讀出第一個單詞。
所以我用與fgets讀的第一行和使用的sscanf:
sscanf(line,"%[A-z]%n,word,len);
line+=len;
此一不工作,要麼因爲無論我嘗試,我不能將指針移動到合適的位置。我試過strtok的,但我無法找到如何設置delimitters
while(p != NULL) {
printf("%s\n", p);
p = strtok(NULL, " ");
這一個顯然以空白字符作爲delimitter但我delimitters字面上100S。
我在這裏錯過了什麼,因爲從文件中提取單詞看起來似乎是一個簡單的概念,但沒有我嘗試真正起作用?
定界符是除a-z和A-Z以外的所有東西。 – Ihateparsing 2011-12-15 21:52:49