الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أحول النوع intإلى char

مغلق
بدأه eias في 24 أكتوبر 2005 · 7 رد · 590 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ..

كلنا يعلم أن كود صندوق الرسالة هو كالتالي:

MessageBox("Eias!!","The Crash",0);

ولكن نحن لو أردنا أن نعمل مثل ال vb و نجعل ما داخل الصندوق هو عبارة عن متغير رقمي مثل Int

	int a=100

MessageBox(a,"The Crash",0);

و يحدث الخطأ التالي:

rror C2664: 'MessageBoxA' : cannot convert parameter 1 from 'int' to 'const

char *'

الخطأ واضح هو انه لم يستطع ان يحول الInt إلى Char

كيف يمكن أن نتغلب على هذه المشكلة و نحولها بحيث يظهر المتغير الرقمي في الصندوق .

وشكرا

#2
	int a=100;
	char tmp[10];
	itoa(a,tmp,10);
	MessageBox(0,tmp,"the crash",MB_OK);

itoa (int to ascii) more on this function on here

#3

نفس المشكلة اللي واجهتها ..

ان شاء الله حل الاخ v1r05 يكفي ..و يوفي ... لكن زيادة الخير خيرين .

الحل الذي استخدمه ..

  case WM_LBUTTONDOWN:

 	 {
    int x;
    int y; 
    int pens,books,case_;
    char string[40]; 

    


    x=40;
    y=90;
    sprintf(str,"%d - %d",(int)x ,(int)y);
       MessageBox(0,str,"arab team",0);

    x=90; 
             sprintf(str," %d", (int)x);
       MessageBox(0,str,"arab team",0);

    pens=9;
    books=5;
    case_ = 1;
    sprintf(str ,"my pens: %d , my books %d and my case :%d ",(int)pens,(int)books,(int)case_);
        MessageBox(0,str,"arab team",0);
    

 	 }

 	 break;

اذا تستخدم الدالة

sprintf

البارمتر الاول مصفوفة نصية char اللي تريد ان تخزن فيها الكلام .

البارمتر الثاني تكتب الكلام الذي تريد ان يخزن .. مع النص

البارمتر الثالث والرابع والخامس الخ ... المتغيرات الرقمية

مثلا

int xxx = 90; 
char str[45]; 
sprintf(str ,"my age is %d",(int)xxx);

حيث سيكتب بدلا من %d قيمة المتغير xxx

الان str جاهزة للاستخدام

استخدمها في msg - textout - .......

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#4

السلام عليكم

انا فى الواقع افضل إستخدام الدالة wsprintf هى شبيهه جداً للدالة sprintf ولكن بإمكانيات اكبر

http://msdn.microsoft.com/library/default....ns/wsprintf.asp

,والسلام عليكم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#5

شكرا لك أخي الكريم v1r05 فعلا دالة بسيطة يعني لو استبدلتها ب atoi يمكن تعمل عمل عكسي :lol:

ولكن عندما كتبت الكود بالشكل

int a=100;

char tmp[10];

itoa(a,tmp,3);

MessageBox(,tmp,"the crash",MB_OK);

لم يظهر الرقم المحدد بل رقم آخر غريب.. ؟

أخي الكريم الشمري شكرا لك ..ماا تفعل هنا :lol: نحن عم نهيء لك الجو لكي تكتب دروس الWindows

تبدو طريقكت طويلة لذلك رح أدرسها على مهلي

شكرا لك أخي الكريم أحمد غريب

#6

ثالث بارامتر هو الـ base و ليس عدد الحروف .. دائما خليه 10 اذا اردت ارقام عادية!

تم تعديل هذه المشاركة بواسطة hasan_aljudy في 25 أكتوبر 2005 في 08:22

#7

أول ما شفت العنوان جائت برأسي sprintf لتنسيق النصوص

مثلا معك المتغير i من النوع int وتريد وضع قيمته في نص ليظهر في رساله مثلا

1 - نجهز مخزن بالطول المناسب للنص الناتج والذي سوف يتم عرضه

2 - نستخدم الداله بنفس الطريقه التي نستخدم بها الداله printf المعروفه في السي ولكن مع اختلاف بسيط , أنها سوف تأخذ عنوان المخزن لتضع فيه النص الناتج بدلا من طباعته على الشاشه

مثال:

int i = 500;
char buffer[128] = {0};
sprintf(buffer, "[*] I = %d", i);

بعد التنفيذ يحتوي المخزن buffer النص

[*] I = 500

ويمكنك عرضه في الرساله

MessageBox((HWND) 0 , buffer, "ArabTeam2000", MB_OK);

المثال هو تماما ما كتبه الشمري , لكن انت ظنيته طويل , وهو يا دوب سطرين

هذا الموضوع مغلق.

مواضيع مشابهة