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

السؤال

نشر

يأتيني رسالة الخطأ

 /garden.cpp:12:66: error: no match for 'operator+' (operand types are 'std::__cxx11::basic_string<char>' and 'int')

عندما أحاول تنفيذ الكود

string findTrees(int arr[],int n){
        string position;
        int a;
        if(arr[0]==arr[2]){
                a=abs(arr[3]-arr[1]);
                position=abs(arr[0]-a)+" " +to_string(arr[1])+' '+abs(arr[0]-a)+' '+
                arr[3];
            }

 

Recommended Posts

  • 1
نشر

في c++ علامة الاقتباس المفردة" ' " تدل على النوع محرف char، وعلامة الاقتباس المزدوجة " " " تدل على نص

الخطأ في المثال السابق هو عند محاولة جمع محرف و عدد int، بدل علامات الاقتباس للفراغات بعلامة مزدوجة كالتالي

string findTrees(int arr[],int n){
  string position;
  int a;
  if(arr[0]==arr[2]){
    a=abs(arr[3]-arr[1]);
    position=abs(arr[0]-a) + " " + to_string(arr[1]) + " " + abs(arr[0]-a) + " " + arr[3];
  }
 

 

  • 1
نشر

سبب الخطأ أن الدالة abs تقوم بأخذ قيمة عددية وترجع القيمة المطلقة لها, والتي بدورها أيضا قيمة عددية كما أن المتغير في المصفوفة arr[3] يُعد أيضاً قيمة عددية, وال" " عبارة عن سلسلة نصية, ﻻ يمكنك جمع سلسلة نصية وقيمة عددية في الوقت ذاته, الحل أن تقوم بتحويل القيم العددية إلى سلسلة نصية عن طريق الدالة to_string كما عملت في عﻻمة الجمع رقم إثنين فتصبح الشفرة البرمجية خاصتك على الصيغة التالية

string findTrees(int arr[],int n){
        string position;
        int a;
        if(arr[0]==arr[2]){
                a=abs(arr[3]-arr[1]);
                position=to_string(abs(arr[0]-a))+" " +to_string(arr[1])+' '+to_string(abs(arr[0]-a))+' '+
                to_string(arr[3]);
            }

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...