如何获取文件指针的当前行位置?如何在C中找到文件指针的当前行位置?
11
A
回答
14
没有给你当前行的函数。但是您可以使用ftell函数从文件开头的字符数中获取偏移量。
4
没有函数来获取当前行;你必须自己跟踪它。这样的事情:
FILE *file;
int c, line;
file = fopen("myfile.txt", "rt");
line = 0; /* 1 if you want to call the first line number 1 */
while ((c = fgetc(file)) != EOF) {
if (c == '\n')
++line;
/*
... do stuff ...
*/
}
3
您需要使用ftell给你在文件中的位置。
如果您想要当前的行,则必须计算文件起始位置和位置之间的行终止符序列的数量。要做到这一点的最好方法是,可能从文件的开始处开始,并且一直向前读取,直到您到达该位置,随着计数行结束符序列。如果你想要当前的行位置(我假设你指的是你当前行的哪一个字符),你必须计算位置之前的行结束符序列之间的字符数,和位置本身。
这样做的最好方法是使用fseek从位置一次备份块,将块读入缓冲区,然后在最后一行中找到最后一行结束符序列块,计算该点和位置之间的差异。
+0
'最好的方式'假设你有一个可寻求的设备,而不是终端或管道作为输入。它还假定你正在处理一个可读的文件指针 - 输出流中还有一个'当前行位置'。 – 2010-03-28 16:24:41
相关问题
- 1. 如何将指针设置为C#中Datagridview中的当前行
- 2. 如何从MSPointerMove事件中获取指针的当前位置?
- 3. 如何在osmdroid中显示当前位置指针?
- 4. 如何在C中找到可执行文件的位置?
- 5. 如何在linux中找到当前使用的MySQL配置文件的位置
- 6. 如何找到用户当前位置?
- 7. 添加到C++中的指针位置
- 8. 查找当前文件的位置
- 9. 文件指针位置
- 10. 如何在cocos2d中找到精灵的当前位置
- 11. 在C++的bmp文件中获取指针到dib的指针
- 12. 无法将指针位置设置为C++中另一个指针位置的指针位置
- 13. 如何在iPhone SDK中找到当前位置
- 14. 如何找到位置/当前脚本在PowerShell中
- 15. 在MATLAB中查找当前m文件的位置
- 16. 如何在没有堆栈指针的情况下找到堆栈的当前位置?
- 17. 在C++中找到控件的位置
- 18. wxpython textctrl如何找出文本指针的位置
- 19. 如何在Flex中找到当前鼠标指针下的列表项?
- 20. 找到当前位置的经纬度
- 21. C++中的指针分配。 (指针的指针到指针位于LHS)
- 22. 如何将文件指针重置为Java中文件的起始位置?
- 23. 找到当前位置和指定位置之间的道路距离
- 24. 如何找到从当前位置到给定位置的距离?
- 25. 如何根据我的当前位置将指南针指向我特定的纬度经度位置?
- 26. 如何找到macosx中可执行文件的位置?
- 27. 如何查找我当前位置附近的位置?
- 28. 如何使用c查找最近打开/当前活动文件的鼠标指针的路径使用c#
- 29. 如何在C#中的通用应用程序当前指针位置获取图像的像素颜色?
- 30. 如何查找字母跨度中鼠标指针的位置
不是字符数。字节数。 C将概念糅合在一起,当然,但它们*是不同的。 – 2010-03-28 15:58:16
@Donal:他说'char',这是C如何拼写'字节'。 – 2010-03-28 16:20:46
小心。 'ftell'可能不会返回对文本模式流直接有意义的内容。 – jamesdlin 2010-03-28 21:58:16