为什么我的函数返回0而不是文件中的行数?

时间:2015-10-08 09:06:18

标签: c

我编写了一个函数,用于读取.txt文件中的句子数,但是当调用并完成函数时,它给出的值为0.

这个程序总共有3个函数来计算文件的不同属性,我让它们运行得很好。这个方法与我编写其他函数的方式相同,只是寻找一些关于我为什么得到0作为句子数量的建议。

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;
}

3 个答案:

答案 0 :(得分:0)

而不是return use return(sCount); 并将返回值赋给调用函数中的某个int变量 喜欢 int sentCount; 。 。 。 sentCount = ptrCntS(param1,param2);

答案 1 :(得分:0)

if('。')总是为true,否则......代码永远不会到达。请改用(myChr =='。')。

答案 2 :(得分:0)

功能现在编译并正常运行。这个函数是从上一个函数中的一个开关调用的,我在那里设置了我的地址并包含了我的总计的print语句,这样我就不必再编写另一个函数来调用我的所有计数并打印它们的结果。相反,我设置我的案例' A':调用我的所有计数功能(在这种情况下,这是原始代码),而不是显示我的结果。我很抱歉任何篇幅或我难以理解的写作我是C语言的新手,我很难掌握文献,但在理解语法方面做了一些过程。