मैं फ़ाइल सूचक की वर्तमान पंक्ति स्थिति कैसे प्राप्त कर सकता हूं?सी में फ़ाइल पॉइंटर की वर्तमान लाइन स्थिति कैसे खोजें?
उत्तर
कोई फ़ंक्शन नहीं है जो आपको वर्तमान पंक्ति देता है। लेकिन आप फ़ाइल की शुरुआत से चार की संख्या के मामले में ऑफ़सेट प्राप्त करने के लिए ftell फ़ंक्शन का उपयोग कर सकते हैं।
वर्तमान लाइन प्राप्त करने के लिए कोई फ़ंक्शन नहीं है; आपको इसे स्वयं ट्रैक करना होगा। कुछ इस तरह:
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 ...
*/
}
आप ftell उपयोग करने के लिए आप फ़ाइल के भीतर स्थिति देने के लिए की जरूरत है।
यदि आप वर्तमान लाइन चाहते हैं, तो आपको फ़ाइल और स्थिति की शुरुआत के बीच लाइन टर्मिनेटर अनुक्रमों की संख्या गिननी होगी। ऐसा करने का सबसे अच्छा तरीका शायद फ़ाइल की शुरुआत में शुरू करना है और जब तक आप स्थान पर नहीं जाते हैं, तब तक आगे पढ़ें, लाइन टर्मिनेटर अनुक्रमों को गिनते समय गिनें।
यदि आप वर्तमान लाइन स्थिति (मुझे लगता है कि आप का मतलब है कि वर्तमान लाइन का कौन सा चरित्र है), तो आपको स्थिति से पहले लाइन टर्मिनेटर अनुक्रम के बीच वर्णों की संख्या गिननी होगी, और स्थिति ही।
ऐसा करने का सबसे अच्छा तरीका (पीछे की ओर पढ़ने के बाद सुविधाजनक नहीं है) fseek का उपयोग स्थिति से एक समय में एक खंड को बैक अप करने के लिए करना है, एक बफर में खंड को पढ़ें, फिर अंतिम पंक्ति टर्मिनेटर अनुक्रम खोजें उस बिंदु और स्थिति के बीच अंतर की गणना, खंड।
'सबसे अच्छा तरीका' मानता है कि इनपुट के रूप में टर्मिनल या पाइप के बजाए आपके पास एक तलाश करने योग्य डिवाइस है। यह भी मानता है कि आप एक पठनीय फ़ाइल सूचक से निपट रहे हैं - आउटपुट स्ट्रीम में भी 'वर्तमान पंक्ति स्थिति' है। –
- 1. कैनवास में वर्तमान अनुवाद स्थिति कैसे खोजें?
- 2. एक ज़िप फ़ाइल में केंद्रीय निर्देशिका की स्थिति कैसे खोजें?
- 3. सी भाषा में वर्तमान दिन कैसे खोजें?
- 4. टेक्स्ट कर्सर की वैश्विक स्थिति कैसे खोजें?
- 5. वेब ब्राउज़र नियंत्रण में किसी तत्व की स्थिति कैसे खोजें?
- 6. सी ++ क्यूटी: वर्तमान स्थिति QStateMachine
- 7. वर्तमान स्थिति
- 8. कमांड लाइन से टेक्स्ट फ़ाइल में अद्वितीय लाइनें कैसे खोजें?
- 9. सी ++ में बीडीडी की वर्तमान स्थिति क्या है?
- 10. वर्तमान कॉन्फ़िगरेशन फ़ाइल का नाम खोजें
- 11. वर्तमान धागे की अपार्टमेंट स्थिति कैसे जांचें?
- 12. विम की स्थिति रेखा पर गिट फ़ाइल स्थिति कैसे जोड़ें?
- 13. एक संतोषजनक डीआईवी में कर्सर की स्थिति कैसे खोजें?
- 14. चुनिंदा विकल्प स्थिति कैसे खोजें?
- 15. एक NSTextView में कैरेट स्थिति कैसे खोजें?
- 16. वर्तमान लेनदेन स्तर कैसे खोजें?
- 17. vim की स्थिति लाइन के "फ़ाइल को संशोधित" झंडा बदलने
- 18. ग्रहण डीबग वर्तमान लाइन
- 19. वर्तमान उपयोगकर्ता भाषा खोजें
- 20. jQuery में किसी छवि की वर्तमान स्थिति कैसे प्राप्त करें?
- 21. सी # - पॉइंटर
- 22. एक बहुत बड़ी सिंगल लाइन फ़ाइल में एक पैटर्न और आसपास की सामग्री कैसे खोजें?
- 23. ओपन फाइलहेडल की वर्तमान संख्या खोजें (नहीं lsof)
- 24. एसक्यूएल में वर्तमान तिथि से सप्ताह की तिथि सीमा खोजें?
- 25. शीर्षलेख और सी-फ़ाइल में फ़ंक्शन पॉइंटर घोषित कैसे करें?
- 26. "लगातार स्थिति" बनाम "वर्तमान स्थिति"
- 27. FragmentPagerAdapter में वर्तमान स्थिति कैसे प्राप्त करें?
- 28. PHP समुदाय की वर्तमान स्थिति क्या है?
- 29. विम: वर्तमान लाइन
- 30. सी ++ में किसी फ़ाइल से लाइन नंबर कैसे प्राप्त करें?
वर्णों की संख्या नहीं। बाइट्स की संख्या। सी अवधारणाओं को एक साथ जोड़ता है, यकीन है, लेकिन वे * अलग हैं। –
@ डोनल: उन्होंने कहा 'चार', जो सी कैसे मंत्र 'बाइट' है। –
सावधान। 'ftell' टेक्स्ट-मोड स्ट्रीम के लिए सीधे कुछ अर्थपूर्ण नहीं लौटा सकता है। – jamesdlin