我有一个缓冲区,它是从文件中读取的文本。我像这样循环遍历以计算行数:
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/