所以我想知道这是否正确;我必须计算文件中超过一行的注释:
void commentsLongerThanOneLine(FILE* inputStream, FILE* outputStream) {
char c;
int i = 0;
while ((c = fgetc(inputStream) != EOF)) {
if (c == '/' && '*' && '\n') i++;
}
printf("Number of comments longer than one line is : %d\n", i);
return 0;
}
最佳答案
&& 表示 bool 值,并且相等性测试是 == 而不是 =,
您需要单独测试每个指标。
if ((c == '/') && (c == '*') && (c == '\n'))
当然,这总是会生成 FALSE,因为它是一个不可能的语句。
即使该行按照您的想法工作,它也总是错误的,因为您似乎针对斜杠和星号和新行测试 c ,这是不可能的。您需要检查斜杠设置一个标志并检查下一个字符是否是星号然后验证注释末尾之前是否有一个新行(*/)
//可以跨越多行,您需要检查/* 是否不在//内,反之亦然。
关于评论长度超过一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34774641/