c - 我如何在缓冲区中寻找? C

标签 c string parsing

我有一个缓冲区,它是从文件中读取的文本。我像这样循环遍历以计算行数:

    while(fgets(buf, 1024, fp) != NULL){

        for(counter = strtok(buf,"\n"); counter; counter=strtok(0,"\n")){               
            threads++;
        }  
    }

    printf("NUMBER OF THREADS: %i", threads);

然后我再次遍历它以解析每一行并使用在该行中解析的参数启动一个线程。

但是,当我运行它时,它会退出,因为下一行是:

while(fgets(buf, 1024, fp) != NULL){
 ....
}

我想这是因为 fgets 正在查看缓冲区的末尾。

我可以回到缓冲区的开头吗?

最佳答案

使用 rewind(fp);fseek(fp, 0, SEEK_SET);

fseek 被认为是更好的做法,因为它返回状态代码。

关于c - 我如何在缓冲区中寻找? C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4982598/

相关文章:

c++ - 在 GCC 中欺骗预处理器 VARIADIC MACROS

c - 为什么我的 c 函数 translate() 返回随机符号?

c - GMP 中的基数 16 到基数 2^64 转换

c - 如何在不知道长度的情况下初始化 C 中的字符串,并继续向其附加字符?

C strcmp 将字符串与数组的前 x 个字符进行比较

c - 声音播放器无法读取我的程序生成的 WAV 文件,提示缺少 header

javascript - 使用 Javascript 将字符串转换为对象

php - 用于解析 HTML 的 DOMDocument(而不是正则表达式)

java - JAVA中不使用XMLParser部分解析XML文件

jquery - 使用 JQuery 解析 XML