أقوم بتنفيذ كود بلغة C, لكن يحدث خطأ عند التنفيذ ولا اعرف ماهو....؟؟
ببساطة, الكود ينفذ من خلال cmd ونقوم بامرار له عددين, العملية الحسابية (+ او - او *) ومن ثم يظهر لي الناتج علي حسب ماقمت انا بادخاله.
الكود في رابط الصورة , بالاضافة الي الخطأ الذي يظهر لي.
السلام عليكم ورحمة الله وبركاته @medo7x
المشكلة في تابع ال strtol , فهو تابع يقبل ثلاث بارمترات وأنت قد مررت له واحداً فقط , حيث أن البارمترات التي يقبلها :
1- النص المراد استخراج الرقم منه .
2- مرجع ليحوي النص المتبقي بعد استخراج الرقم منه .
3- نظام الأرقام الذي تريد البحث عنه (( 16- 10- 8 - 2 الخ )).
مثال ذلك :
#include <stdio.h>
#include <stdlib.h>
int main()
{
char szNumbers[] = "2001 60c0c0 -1101110100110100100000 0x6fffff";
char * pEnd;
long int li1, li2, li3, li4;
li1 = strtol (szNumbers,&pEnd,10);
li2 = strtol (pEnd,&pEnd,16);
li3 = strtol (pEnd,&pEnd,2);
li4 = strtol (pEnd,NULL,0);
printf ("The decimal equivalents are: %ld, %ld, %ld and %ld.\n", li1, li2, li3, li4);
return 0;
}
التنفيذ :
وفي حالتك بما انه جمع لأرقام عادي فيمكنك وضع الأساس 10 (( البارميتر الثالث )) و البارميتر الثاني إن كنت لا تريد تمريره يمكنك ببساطة تمرير NULL
تحياتي .
التعليقات