اذهب إلى المحتوى

Mohssen A Mohssen

الأعضاء
  • المساهمات

    317
  • تاريخ الانضمام

  • تاريخ آخر زيارة

كل منشورات العضو Mohssen A Mohssen

  1. أريد أن أكون قادرًا على إرسال البيانات إلى تطبيق Flask الخاص بي. لقد حاولت الوصول إلى request.data لكن على ما يبدو أنها نص فارغ. import flask app = flask.Flask(__name__) @app.route('/', methods=['GET']) def parse_request(): data = flask.request.data # نص فارغ b'' print(data) return data app.run() عندما أقوم بطلب عنوان URL التالي: http://127.0.0.1:5000/?page=1 أحصل على نص فارغ، كيف يمكنني أن أصل إلى البيانات الموجودة في عنوان الصفحة؟
  2. أرى في كثير من الأحيان بعض المبرمجين يستعملون الدالة printf لطباعة القيم والنصوص، بينما أستخدم أنا cout للقيام بهذه المهمة. لذلك أتسأل ما الفرق بين الطريقتين؟ ومتى أستعمل كل طريقة منهم؟
  3. أريد أن أستخدم النوع std::string لتخزين القيمة المرجعة من الدالة ()fget، لذلك أحتاج تحويل القيمة من نوع *char المرجعة من الدالة ()fget إلى std::string كيف أقوم بهذا الأمر في لغة ++C؟
  4. لدي namespace ويحتوي على دالة باسم user_details ولكن لدي دالة أخرى عامة global بنفس الاسم: std::string user_details() { return "global"; } namespace user { std::string user_details() { return "local"; } void execute() { std::cout << user_details(); // Output: local } } عندما أقوم بتنفيذ الدالة execute يتم تنفيذ الدالة user_details الموجودة في الـ namespace، كيف أقوم بإستدعاء الدالة العامة الموجودة خارج الـ namespace لكي تكون النتيجة "global"؟
  5. حاولت أن أقرأ بعض أكواد برامج ++C معروفة، ووجد أنهم يستعملون الكود التالي في أغلب ملفات الترويسات header files: #pragma once // ... ولكن ما معنى هذا الكود؟ وهل يجب أن أستعمله؟
  6. عندما أحصل على مدخلات المستخدم من خلال الدالة getline وتخزين النص في متغير str، كالتالي: #include <iostream> #include <string> int main() { std::string str; std::cout << "Enter your name: "; std::getline(std::cin >> std::ws, str); std::cout << '\n' << str << '\n'; return 0; } كيف يمكنني معرفة طول هذا النص؟ وكيف أقوم بعمل حلقة للمرور على كل حرف من خلال for؟
  7. عندما أقوم بعمل متغير من نوع double أو float كالتالي: double x {0.1 + 0.2}; // من المفترض أن القيمة تكون 0.3 عندما أقوم بعمل مقارنة بين المتغير السابق والقيمة 0.3 أحصل على false: if((0.1 + 0.2) == 0.3) { // false std::cout << "equal"; } أعلم أن مجموع 0.2 + 0.1 لا يساوي 0.3 بالضبط، ولكن كيف يمكنني أن أقوم بالتحقق من أن القيمة 0.1 + 0.2 تساوي 0.3؟
  8. أريد أن أقوم بطباعة نوع المتغير، على سبيل المثال لدي متغير x نوع int وأريد أن أقوم بطباعة الكلمة int (نوع المتغير). يمكنني أن أستخدم type لمعرفة نوع المتغير في Python ، ولكن كيف أقوم بهذا الأمر في لغة ++C؟
  9. ما الفرق بين النوع int * const و * int const ، حيث أجد صعوبة في فهم وظيفة كل نوع ومتى أسعمل كل نوع منها .. إلخ أريد أن أعرف متى يجب أن أستعمل كل واحد منهما، ومتى لا أستعمل النوع الآخر، وما إلى ذلك. وهل هناك طرق مختلفة لكتابة نفس النوع بأكثر من طريقة في لغة ++C؟
  10. أحاول القيام ببرنامج بسيط، وفي جزء من هذا البرنامج أريد أن أقوم بزيادة قيمة المتغير x والمتغير y ثم طباعتهما: int x{ 1 }; int y{ 2 }; std::cout << (++x, ++y); // 3 لكن المشكلة أني أجد أن القيمة 3 تمت طباعتها فقط بدون طباعة القيمة 2، عندما أقوم بهذا الأمر في Python أو JavaScript يتم طباعة كلا المتغيرين، ما سبب هذه المشكلة هنا؟
  11. لدي متغير يحمل رقم صحيح من نوع int يقوم المستخدم بإدخاله من خلال cin ، وأريد أن أقوم بدمجه مع نص (اسم المستخدم)، كالتالي: int age = 18; std::string name = "Mohammed"; std::string new_name = "Your name is " + name + " and your age is " + age; ولكن تظهر لي هذه الأخطاء: Error (active) E0349 no operator "+" matches these operands Error C2676 binary '+': 'std::string' does not define this operator or a conversion to a type acceptable to the predefined operator كيف يمكنني دمج رقم صحيح مع نص؟ في لغات أخرى مثل JavaScript لا أحتاج إلى أي خطوات للقيام بهذه المهمة، لكن كيف أقوم بها في ++C؟
  12. أعلم أن النوع char يستخدم لتخزين حرف واحد مثل 'a'، ولكن وجدت أن هناك نوع آخر وهو unsigned char؟ لماذا يوجد منه نوعين char و unsigned char؟ كيف يكون هناك حرف بإشارة سالبة؟!
  13. كيف يمكنني التحقق من وجود كلمة في جملة معينة بإستخدام لغة ++C، فعلى سبيل المثال لدي المتغيرين التاليين: std::string s1 = "Hello, world"; std::string s2 = "world"; كيف يمكنني التحقق برمجيًا من أن المتغير s1 يحتوي على قيمة المتغير s2؟ في لغات أخرى مثل Python يمكنني إستعمال المعامل in للتحقق من هذا الأمر، كيف أقوم بنفس الشيء في لغة ++C؟
  14. حاولت أن أقوم بكتابة أكثر من كود ++C وفي كل مرة يظهر لدي الخطأ التالي: fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add ‘#include "stdafx.h"’ to your source? لا أعرف سبب هذه المشكلة، قمت بتجربة كتابة أكثر من برنامج بسيط، وفي كل مرة يظهر لدي نفس الخطأ. كيف يمكنني حل هذه المشكلة؟ أنا أستعمل Visual Studio 2010
  15. أريد أن أعرف المساحة التي يشغلها نوع معين (مثل int أو double) في الذاكرة، فعلى سبيل المثال: النوع int يستغل 4 bytes من الذاكرة. كيف يمكنني أن أتأكد من هذا الرقم؟ وكيف يمكنني معرفة حجم باقي الأنواع في ++C؟
  16. تعلمت أن كل الثوابت من نوع constexpr يتم تهيئتها وخزين قيمتها أثناء وقت التصريف compile time، لذلك لما لا نقوم بإستعمال define# بدلًا من ذلك، حيث أن أستعمالها أسهل ولا نحتاج إلى تعريف نوع type للثابت؟ #define MAX_STUDENTS_PER_CLASS 30 int max_students { numClassrooms * MAX_STUDENTS_PER_CLASS }; ما الفرق بين define# و constexpr؟
  17. أجد في كثير من الأحيان يتم إستعمال كلمة const لتحديد قيمة ثابت وأيضًَا أجد أنه يتم إستعمال constexpr في نفس الكود بدون معرفة الفرق بينهما، لذلك أريد أن أعرف الفرق بين النوعين ومتى أستخدم كل واحد منهما؟
  18. عندما أقوم بطباعة الرقم 1.23456789 أجد أنه تم طباعة جزء منه فقط (1.234567) ويتم تجاهل باقي الرقم، ونفس الأمر إذا قمت بطباعة أرقام كبيرة مثل 123456789 يتم طباعة الرقم بصيغة عليمة scientific notation مثل (1.23457e+08): double x{1.23456789}; std::cout << x << '\n'; // 1.234567 double y{123456789}; std::cout << y << '\n'; // 1.23457e+08 كيف أقوم بطباعة هذه الأرقام بشكلها العادي؟
  19. أحاول أن أقوم بعمل برنامج يطبع عمر المستخدم بأكثر من نظام رقمي مثل النظام العشري decimal و الثماني octal والست عشري Hex decimal والثنائي binary: std::cout << "Enter your age: "; int age{}; std::cin >> age; std::cout << "Your age in decimal is " << std::dec << age << '\n'; std::cout << "Your age in HEX is " << std::hex << age << '\n'; std::cout << "Your age in OCT is " << std::oct << age << '\n'; المشكلة هي أنه لا يوجد معالج إخراج output manipulator لتحويل الرقم إلى نظام ثنائي، قمت بتجربة std::bin ولكن لم ينجح هذا الأمر. كيف أقوم بطباعة الرقم إلى النظام الثنائي؟
  20. أحاول أن أقوم بعمل برنامج بسيط، يطلب من المستخدم الاسم الكامل ولكن تظهر مشكلة وهي أن التابع cin يقوم بتقسيم المدخلات بالمسافات ويأخذ أول كلمة فقط: std::cout << "Enter your full name: "; std::string name{}; std::cin >> name; // هنا يتم تخزين أول كلمة فقط std::cout << "Enter your age: "; std::string age{}; std::cin >> age; // هنا يتم تخزين ثاني كلمة std::cout << "Your name is " << name << " and your age is " << age << '\n'; عندما يدخل المستخدم أكثر من كلمة مرة واحدة يتم إعتبار أن الكلمة الثانية هي المدخل للمتغير age : Enter your full name: Mohssen Ahmed Enter your age: Your name is Mohssen and your age is Ahmed لاحظ كيف تم تخزين الكلمة Ahmed في المتغير age ولم ينتظر إلى أن يقوم المستخدم بإدخال القيمة الثانية. ما سبب هذه المشكلة؟ وكيف أقوم بحلها؟
  21. أحاول أن أقوم بعمل برنامج يحاكي حركة سقوط الأجسام بإستخدام ++C ولكن عندما أقوم بتخزين الرقم 9.8 (عجلة الجاذبية) في متغير كالتالي: // Gravitational acceleration float gravity{ 9.8 }; يظهر لي الخطأ التالي: 'initializing': truncation from 'double' to 'float' لم أفهم سبب هذا الخطأ؟ كيف يمكنني حل هذه المشكلة؟ أستخدم Visual Studio 2019 كبيئة للتطوير IDE
  22. أحاول أن أحصل على المستخدم على مدخل input وتخزين هذا المدخل في متغير boolean bool answer {}; std::cin >> answer; ولكن المشكلة أن الكود لا يعمل إلا إذا قام المستخدم بإدخال رقم 1 أو 0، أما إذا أدخل المستخدم كلمة true أو false يتم إعتبار القيمة دائمًا false، كيف يمكنني أن أخزن القيمة true أو false إذا قام المستخدم بإدخالهم ككلمات وليس كأرقام 0 أو 1؟
  23. لدي كائنين من نوع vector وأريد أن أقوم بإضافة كل عناصر الأول في الكائن الثاني، ليصبح لدي كائن واحد يحتوي على كل العناصر: std::vector<int> vector1{ 1,2,3,4,5 }; // يجب أن يحتوي هذا العنصر على كل عناصر vector2 std::vector<int> vector2{ 6,7,8,9,10 }; كيف أقوم بنقل العناصر من vector2 إلى vector1؟
  24. أرى في كثير من الأحيان إستخدام الرمز n\ في نهاية النص عند الطباعة وفي أحيان أخرى أجد أن الكود يستعمل std::endl في نهاية النص، لذلك ما الفرق بين الكود التالي: std::cout << "Hello, Wolrd\n"; وهذا الكود: std::cout << "Hello, Wolrd" << std::endl;
  25. لدي متغير من نوع std::string ويحتوي على بعض الكلمات الإنجليزية كالتالي: std::string str = "HELLO, WORLD"; كيف يمكنني تحويل هذا النص إلى أحرف صغيرة Lower case؟ في لغات أخرى مثل JavaScript يمكنني أن أستخدم التابع toLower ولكن كيف أقوم بهذا الأمر في ++C؟
×
×
  • أضف...