【发布时间】:2013-10-08 07:59:49
【问题描述】:
我是 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”
edit 这就是我想出的代码。如果我用 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;
}
我做错了什么?
【问题讨论】: