У меня есть входной файл, из которого мне нужно извлечь слова.Слова могут содержать только буквы и цифры, поэтому все остальное будет рассматриваться как разделитель.Я пробовал fscanf, fgets + sscanf и strtok, но ничего не работает.
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, но не могу найти, как установить разделители
while(p != NULL) {
printf("%s\n", p);
p = strtok(NULL, " ");
Этот символ явно принимает пустой символ в качестве разделителя, но у меня буквально сотни разделителей.
Я что-то здесь упускаюИз-за того, что извлечение слов из файла поначалу казалось простой концепцией, но все, что я пытаюсь сделать, действительно работает?