我是 C 新手,我看到很多一次读取一个单词的文件的示例,但我正在尝试创建一个函数,该函数给出一行文本(实际上是文件名列表),它需要读取一个一次单词(文件名)。
例如。我调用函数 words("file1.c file2.c file3.txt");
该函数需要读取每个单词(文件名)并将其传递给另一个函数。
到目前为止,我有:
void words(char* line) {
char buf[100];
while (!feof(line)) {
fscanf(line,"%s",buf);
printf("current word %s \n", buf);
}
}
但这不会编译。我得到“从不兼容的指针类型传递'feof'的参数1”
编辑所以这是我想出的代码。如果我用 words("test1 test2 test3 test4 "); 调用它,它似乎工作正常。但如果最后一个字符不是空格,则输出中有错误。例如(“test1 test2 test3 test4”);
char buf[100];
int word_length = 0;
int n;
while((sscanf(line + word_length,"%s",buf, &n)) == 1) {
printf("current word %s \n", buf);
word_length = word_length + strlen(buf) + 1;
}
我做错了什么?