سؤال

كيف أذهب للكتابة فوق خط معين على ملف نصي في ج؟ لدي قيم في متغيرات متعددة تحتاج إلى مكتوبة على الملف.

هل كانت مفيدة؟

المحلول

هذا يعمل فقط عندما يحتوي الخط الجديد بنفس حجم الشخص القديم:

  • افتح الملف في الوضع a+
  • fseek() لبدء الملف
  • قبل قراءة السطر التالي، استخدم ftell() لملاحظة بداية الخط
  • قراءة السطر
  • إذا كان الخط الذي تريده، fseek() مرة أخرى مع النتيجة من ftell() واستخدام fwrite() للكتابة عليه.

إذا تغير طول الخط، فيجب عليك نسخ الملف.

نصائح أخرى

نظرا لأن الملفات (من وجهة نظر المكتبة القياسية C.) ليست موجهة نحو خط، ولكنها مجرد سلسلة من الأحرف (أو البايتات في الوضع الثنائي)، لا يمكنك توقع تحريرها على مستوى الخط بسهولة.

كما وصف آرون، يمكنك بالطبع استبدال الأحرف التي تشكل الخط إذا كان بديلك هو نفس عدد الأحرف بالضبط.

يمكنك أيضا (ربما) إدراج بديل أقصر عن طريق الحشو مع Whitespace في النهاية (قبل انتهاء الأسطر). هذا بالطبع الخام قليلا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top