omar zizou نشر 16 فبراير 2021 أرسل تقرير نشر 16 فبراير 2021 السلام عليكم مرحبا لقد قمت بكتابة هادا الكود بلغة ++c لنقل محتوى ملف a.txt الى abc.txt فظهر خطئ ولم أستطع تنفيد . أريد حل ؟؟ #include <iostream> #include <stdio.h> using namespace std; int main() { FILE* pFile; FILE* pofg; pFile = fopen("a.txt", "r"); pofg = fopen("abc.txt", "w"); if (pofg != NULL) { fputs(pFile, pofg); fclose(pofg); } return 0; } اقتباس
0 سمير عبود نشر 16 فبراير 2021 أرسل تقرير نشر 16 فبراير 2021 يوجد لديك خطأ في إستعمال الدالة fputs هذه الدالة تستقبل سلسلة نصية على شكل مصفوفة محارف كمُعامل أول و مؤشر على File كمُعامل ثاني بهذا الشكل مثلاً: #include <stdio.h> int main () { FILE *fp; fp = fopen("file.txt", "w+"); fputs("This is c programming.", fp); fclose(fp); return(0); } أنت لم تقرأ شيء من الملف الذي تريد نقل مُحتواه فللكتابة في الملف الثاني يجب قراءة مُحتوى الملف الأول ثم نقله للملف الثاني بهذا الشكل مثلاً: #include <iostream> #include <stdio.h> using namespace std; int main() { FILE* pFile; // المصدر FILE* pofg; // الخرج char ch; // مُتغير سنستخدمه للقراءة pFile = fopen("a.txt", "r"); // فتح المصدر للقراءة pofg = fopen("abc.txt", "w"); // فتح الخرج للكتابة if (pFile != NULL) // إذا كان المصدر لا يُساوي null { ch = fgetc(pFile); // قراءة المحرف الأول من المصدر while(ch != EOF) // بما اننا لم نصل إلى نهاية الملف { fputc(ch, pofg); // أكتب في الخرج ما قمت بقرائته ch = fgetc(pFile); // واصل القراءة } cout<<"\nFile copied successfully."; // تم نقل المحتوى fclose(pFile); // غلق المصدر fclose(pofg); // غلق الخرج } return 0; } 1 اقتباس
0 omar zizou نشر 16 فبراير 2021 الكاتب أرسل تقرير نشر 16 فبراير 2021 شكراا أخي إدا لا بد أن أقوم بقرأة ثم أقوم بتخزينها في ch هل توجد طريقة تضمين الملف الأول a.txt داخل ملف التنفيدي ثم استدعائه ؟ اقتباس
0 سمير عبود نشر 16 فبراير 2021 أرسل تقرير نشر 16 فبراير 2021 بتاريخ 3 ساعات قال omar zizou: شكراا أخي إدا لا بد أن أقوم بقرأة ثم أقوم بتخزينها في ch هل توجد طريقة تضمين الملف الأول a.txt داخل ملف التنفيدي ثم استدعائه ؟ لم أفهم ماذا تريد بالضبط في هذه النقطة: بتاريخ 3 ساعات قال omar zizou: هل توجد طريقة تضمين الملف الأول a.txt داخل ملف التنفيدي ثم استدعائه ؟ الإنسان حتى ينقل محتوى ملف يقرأ من الملف الأول ثم يُخزن ما قرأ في ذاكرته و بعد ذلك يكتب ماهو موجود في ذاكرته، نفس الشيء تقريباً هنا يجب فتح الملف الأول للقراءة و الثاني للكتابة ثم كل حرف تقرأه من الملف الأول تكتبه في الملف الثاني حتى نصل للنهاية. اقتباس
0 omar zizou نشر 16 فبراير 2021 الكاتب أرسل تقرير نشر 16 فبراير 2021 بدل مايكون ملف txt.a و ملف exe أريد أن أجعله ملف واحد exe فقط و القيم الموجودة في ملف txt.a أريد أن أخزنها على exe و أستدعيها لإنشاء ملف abc.txt اقتباس
0 سمير عبود نشر 16 فبراير 2021 أرسل تقرير نشر 16 فبراير 2021 بتاريخ 22 دقائق مضت قال omar zizou: بدل مايكون ملف txt.a و ملف exe أريد أن أجعله ملف واحد exe فقط و القيم الموجودة في ملف txt.a أريد أن أخزنها على exe و أستدعيها لإنشاء ملف abc.txt لا أدري ماذا يوجد في الملف a.txt لديك لكن كما أخبرتك سابقاً يُمكن إستخدام مُتغير من نوع string تُخزن فيه مُحتوى الملف a.txt ثم تكتب ما خزنته بإستعمال الدالة fputs في الملف الذي تريد بهذا الشكل: #include <stdio.h> #include <string> using namespace std; int main () { FILE *fp; string content = "content of source file"; fp = fopen("file.txt", "w"); fputs(content.c_str(), fp); fclose(fp); return(0); } اقتباس
0 omar zizou نشر 17 فبراير 2021 الكاتب أرسل تقرير نشر 17 فبراير 2021 بتاريخ 6 ساعات قال عبود سمير: لا أدري ماذا يوجد في الملف a.txt لديك لكن كما أخبرتك سابقاً يُمكن إستخدام مُتغير من نوع string تُخزن فيه مُحتوى الملف a.txt ثم تكتب ما خزنته بإستعمال الدالة fputs في الملف الذي تريد بهذا الشكل: #include <stdio.h> #include <string> using namespace std; int main () { FILE *fp; string content = "content of source file"; fp = fopen("file.txt", "w"); fputs(content.c_str(), fp); fclose(fp); return(0); } ملف a.txt يحتوي عى عنوبن ip أكثر من 10000 سطر أريد تضمينهم في ملف .h واستدعائه لإنشاء ملف abc.txt عند التنفيد اقتباس
السؤال
omar zizou
السلام عليكم
مرحبا لقد قمت بكتابة هادا الكود بلغة ++c لنقل محتوى ملف a.txt الى abc.txt فظهر خطئ ولم أستطع تنفيد . أريد حل ؟؟
6 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.