我正在尝试创建一个从文件中读取的程序,将所有唯一的单词排序并计数到数组中。我已经在程序中测试了我的所有方法并且它们有效但我在最终测试中遇到了问题。这就是它的样子:
#include <stdio.h>
#include "WordReader.h"
#include "DataSet.h"
#include "TextString.h"
int main(void)
{
FILE *input = fopen("text.txt","r");
WordReader* r = createWordReader(input);
DataSet* s= createDataSet();
TextString* nextWord= readNext(r);
while(nextWord !=0)
{
if(!isMember(s, nextWord))
{
insert(s, nextWord);
}
TextString* nextWord= readNext(r);`enter code here`
}
closeReader(r);
printf("%d\n", toString(TextString nextWord) +
"contains" + size(s) + "Distinct Words");
}
事情就是当我在cygwin中执行程序时,我在第27行遇到了以下错误
它说expected expression before 'TextString'
。我在2周前盯着使用C语言,我不太了解它,所以请求帮助。
答案 0 :(得分:1)
您的代码有些模棱两可,但要将变量作为参数传递给函数,您不需要指定它的类型,只需要指定变量的名称。所以第27行应该只有 toString(nextWord)。此外,C中不存在字符串连接+,如果定义运算符,它可能存在于C ++中。对象也不是C的一部分,只有C ++。您可以在临时缓冲区中使用strcpy()进行字符串连接,然后根据需要进行多次strcat()调用。要通过printf()输出字符串,format参数也应为“%s \ n”。
然而,这可能无法解决您的所有问题,因为我不知道这些本地标题的内容是什么或编译中使用的任何其他文件。
答案 1 :(得分:0)
我认为声明
TextString* nextWord= readNext(r);`enter code here`
导致此错误
如果enter code here
是注释,那么它应该是//enter code here
,否则这不是C中的有效语法。