我一直在努力弄清楚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