我一直在努力弄清楚fscanf格式。我只想閱讀由空格分隔的單詞文件。我想放棄包含非字母字符的任何字符串。如何閱讀只包含字母與fscanf的字符串?
char temp_text[100];
while(fscanf(fcorpus, "%101[a-zA-Z]s", temp_text) == 1) {
printf("%s\n", temp_text);
}
我試過上面的代碼都有和沒有's'。我在另一個stackoverflow線程中讀到,s使用時會被解釋爲文字's'而不是字符串。無論哪種方式 - 當我包括s和當我不包含s - 我只能從我正在閱讀的文件中打印出第一個單詞。
感謝兩個更正!我改變了寬度參數,並在']'之後添加了一個空格來代替s,現在一切都很順利:-)作爲一個更一般的問題,最好是隻在使用類型說明符時才服務於您想要的確切目的?你有沒有發現自己使用類型說明符結合修飾符? – 2011-04-18 02:31:01
我發現自己很少使用'scanf'系列函數。每當我嘗試使用它們時,我都會遇到輕微的偏離,我試圖讓這種行爲難以或不可能解決。通常'fgets'甚至'fgetc'最後都變得更易於使用。 – 2011-04-18 02:35:01