如何獲取文件指針的當前行位置?如何在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