我正在尝试制作一个程序,该程序从文件中读取,排序并将所有唯一的单词计数到数组中。我已经在程序中测试了我所有的方法,它们都起作用了,但最终测试却出现了问题。它是这样的:
#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'
。我两周前开始盯着C语言,但我不太了解它,所以寻求帮助。 最佳答案
您的代码有些含糊,但是要将变量作为参数传递给函数,则无需指定其类型,只需指定变量的名称即可。因此,第27行应仅包含toString(nextWord)。另外,在C中不存在通过+进行字符串连接的情况,如果您定义运算符,则在C ++中可能存在。而且对象不是C的一部分,只有C ++。您可以先使用strcpy()在临时缓冲区中进行字符串连接,然后再根据需要进行任意数量的strcat()调用。要通过printf()输出字符串,格式参数也应为“%s \ n”。
但是,这可能无法解决所有问题,因为我不知道这些本地头文件的内容或编译中使用的任何其他文件的内容。
关于c - textString之前的预期表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18946819/