سؤال

أحاول قراءة ملف BMP في C ++ (Turbo). لكن أنا غير قادر على طباعة الدفق الثنائي.

أريد تشفير ملف txt فيه وفك تشفيره. كيف يمكنني أن أفعل هذا. قرأت أن رأس ملف BMP هو 54 بايت. ولكن كيف وأين يجب علي إلحاق ملف TXT في ملف BMP. ؟

أعرف فقط Turbo C ++ ، لذلك سيكون من المفيد بالنسبة لي إذا قدمت حلًا أو اقتراحًا يتعلق بالموضوع لنفسه.

int main()
{
ifstream fr; //reads
ofstream fw; // wrrites to file
char c;
int random;
clrscr();
char file[2][100]={"s.bmp","s.txt"};

fr.open(file[0],ios::binary);//file name, mode of open, here input mode i.e. read only
if(!fr)
    cout<<"File can not be opened.";
fw.open(file[1],ios::app);//file will be appended
if(!fw)
    cout<<"File can not be opened";
while(!fr)
    cout<<fr.get(); // error should be here. but not able to find out what error is it

fr.close();
fw.close();
getch();
}

هذا الرمز يعمل بشكل جيد عندما أقوم بتمرير ملف txt في الوضع الثنائي

تعديل :

while(!fr)
    cout<<fr.get(); 

أنا غير قادر على رؤية البيانات الثنائية في وحدة التحكم ، وكان هذا يعمل بشكل جيد للنص عندما كنت أتجاوز معلمة الأحرف في FR.GET (C)

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

المحلول

أعتقد أنك سؤال تم الرد عليه:طباعة int في التمثيل الثنائي باستخدام ج

قم بتحويل char الخاص بك إلى int وأنت تنتهي (على الأقل لجزء الإخراج)

نصائح أخرى

مع Steganography ، ما الذي أعرفه القليل عن ذلك ، أنت لست "إلحاق" النص. أنت تقوم بإجراء تغييرات خفية على وحدات البكسل (التظليل ، إلخ ..) لإخفاء شيء غير واضح بصريًا ، ولكن يجب أن تكون قادرًا على تجفيفها العكسي عن طريق فحص البكسل. لا ينبغي أن يكون له أي علاقة مع الرأس. على أي حال ، فإن الهدف من إجابتي غير المفيدة على خلاف ذلك هو تشجيعك على الذهاب والتعرف على الموضوع الذي تبحث عنه إجابات ، حتى تتمكن من تصميم الحل الخاص بك ، ثم تأتي وطلب تفاصيل حول التنفيذ.

تحتاج إلى تعديل نمط البت ، وليس إلحاق أي نص على الملف. مثال واحد بسيط: اقرأ محتوى Bitmap (بعد الرأس) ، والتضحية قليلاً من كل من البايت لعقد المحتوى الخاص بك

إذا كان على Windows ، أعد ترميز لاستخدام CreateFile ومعرفة ما هو الخطأ الحقيقي. إذا كان على Linux ، Ditto للفتح (2). بمجرد تصحيح المشكلة ، ربما يمكنك العودة إلى IoStreams.

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