C 为什么我的函数返回0而不是文件中的行数?
我编写了一个函数,该函数应该读取.txt文件中的句子数,但当调用并完成该函数时,它给我的值为0 这个程序总共有3个以上的函数来计算文件的不同属性,我让它们工作得很好。这个函数的布局与我编写其他函数的方式相同,只是想了解一下为什么我的句子数为0C 为什么我的函数返回0而不是文件中的行数?,c,C,我编写了一个函数,该函数应该读取.txt文件中的句子数,但当调用并完成该函数时,它给我的值为0 这个程序总共有3个以上的函数来计算文件的不同属性,我让它们工作得很好。这个函数的布局与我编写其他函数的方式相同,只是想了解一下为什么我的句子数为0 void ptrCntS (FILE* sp1, int sCount) { char sentence = 'O'; int myChr; if (!(sp1 = fopen("Hello.txt", "r"))) {
void ptrCntS (FILE* sp1, int sCount)
{
char sentence = 'O';
int myChr;
if (!(sp1 = fopen("Hello.txt", "r")))
{
printf("error opening Hello.txt");
return(1);
}
while ((myChr = fgetc(sp1)) != EOF)
{
if ('.')
{
sentence ='O';
}
else if (sentence == 'O')
{
sCount++;
sentence = 'I';
}
}
fclose(sp1);
printf ("Total number of sentences are:\t%d", sCount);
return;
}
代替退货使用退货(童军); 并将返回值赋给调用函数中的某个int变量 喜欢 int sentCount; . . .
sentCount=ptrCntS(参数1,参数2) 如果('.')始终为真,则其他。。。代码从未到达。改用if(myChr=='.')。函数现在可以编译并正常运行。此函数是从上一个函数中的开关调用的,在该函数中,我设置了我的地址,并包含总计的打印语句,这样我就不必在最后编写另一个函数来调用所有计数并打印结果。相反,我将case设置为“A”:调用所有计数函数(在本例中,这就是原始代码),然后显示结果。我很抱歉写得太长或太难理解。我是C语言的新手,我很难掌握相关文献,但在理解语法方面做了一些工作 不要将局部变量作为参数传入
sp1
在这个函数之外没有任何意义,所以它应该是一个局部变量,而不是一个参数。你认为如果('.')的话,会做什么?那代码编译时没有错误吗?函数中的值声明为returningvoid
,如何返回?不应返回(1)代码>给您一个编译错误,因为返回类型是void
?“这一个与我编写其他函数的方式相同”-这听起来像是您在这里遇到了一些复制和粘贴错误,这些错误对您想要实现的功能不起作用。谢谢您,这解决了我的问题。现在所有被调用的函数都在发回相应的编号,只需要找到最后一个函数来显示它们