أريد ببساطة عمل دالة ولتكن myprint تقوم بنفس وظائف دالة printf :)
طبعا دون أن تقوم بتغيير السورس كود للـ header file الخاص بالدالة printf وهو stdio.h ;)
أريد ببساطة عمل دالة ولتكن myprint تقوم بنفس وظائف دالة printf :)
طبعا دون أن تقوم بتغيير السورس كود للـ header file الخاص بالدالة printf وهو stdio.h ;)
من أقوال الأئمة
الإمام علي بن أبي طالب -رضي الله عنه-: "الناس ثلاثة : فعالم رباني ، ومتعلم على سبيل النجاة ، وهمج رِعاع غوغاء أتباع كل ناعق ، يميلون مع كل ريح ، لم يستضيئوا بنور العلم ، ولم يلجئوا إلى ركن وثيق".
الإمام مالك -رحمه الله- : " لن يصلح آخر هذه الأمة إلا بما أصلح به أولها ".
الإمام الأوزاعي -رحمه الله- : " عليك بآثار من سلف وإن رفضك الناس وإياك وآراء الرجال وإن زخرفوه لك بالقول ".
الإمام الفضيل بن عياض -رحمه الله- : " عليك بطرق الهدى و لا يضرك قلة السالكين و إياك و طرق الضلالة ولا يغرك كثرة الهالكين ".
علامة الزمان الإمام الألباني -رحمه الله- : " إن الخلاص إلى أيدي هؤلاء الشباب يتمثل في أمرين لا ثالث لهما ؛ التصفية والتربية ".
وكل خير في اتباع من سلف وكل شر في ابتداع من خلف
اخى باسم كنت اود ان ابحث فى هذا السؤال عن كيفية عمل الدالة printf & cout و ظننت انها تتعامل مباشرة مع الشاشة و تقوم بطبع الاحداثيات على الشاشة (طبعا توقع متخلف منى عن كيفية عمل هذه الدالة)
السلام عليكم:
من الممكن كتابة
#define myprint(a) printf(a) ;
أو
int myprint(char* a)
{
return printf( a);
}مرحبا اخي باسم الموجي ,, متألق كعادتك
بالنسبة لمحاولتي هي كالتالي :
نعرف ماكرو
#define myprint(a) printf a
وداخل الـ Main
main()
{
int x=5,y=10;
myprint(("%d + %d = %d ", x,y,x+y));
getch();
return 0;
}ان شاء الله يكون صحيح :wub:
شكرا لك

اشهد ان لا إله إلا الله وان محمدا ً رسول الله
بالنسبة لحلول الأخ فهد فقد اعتمدت على أن دالة printf تأخذ parameter واحد فقط وهذا غير صحيح
أما بالنسبة لحل الأخ time1 فالحل سيعمل بشكل صحيح لكنك لم تقم بعمل دالة أصلا وأنا طلبت عمل دالة
فكروا قليلا هناك وسيلة أخرى :)
من أقوال الأئمة
الإمام علي بن أبي طالب -رضي الله عنه-: "الناس ثلاثة : فعالم رباني ، ومتعلم على سبيل النجاة ، وهمج رِعاع غوغاء أتباع كل ناعق ، يميلون مع كل ريح ، لم يستضيئوا بنور العلم ، ولم يلجئوا إلى ركن وثيق".
الإمام مالك -رحمه الله- : " لن يصلح آخر هذه الأمة إلا بما أصلح به أولها ".
الإمام الأوزاعي -رحمه الله- : " عليك بآثار من سلف وإن رفضك الناس وإياك وآراء الرجال وإن زخرفوه لك بالقول ".
الإمام الفضيل بن عياض -رحمه الله- : " عليك بطرق الهدى و لا يضرك قلة السالكين و إياك و طرق الضلالة ولا يغرك كثرة الهالكين ".
علامة الزمان الإمام الألباني -رحمه الله- : " إن الخلاص إلى أيدي هؤلاء الشباب يتمثل في أمرين لا ثالث لهما ؛ التصفية والتربية ".
وكل خير في اتباع من سلف وكل شر في ابتداع من خلف
مرحبا اخي
اسف لم انتبه انك تريدها على شكل دالة
عموما اذا كنت تقصد عمل دالة متكاملة مثل دالة printf فهذا سيحتاج بعض الجهد
لكن اذا كنت تريد ان تتحايل على هذه الدالة لتنتج منها دالة اخرى , فيجب ان توضح نوعية التحايل المراد :D
مثال : هذه دالة صممتها على السريع , تحاكي عمل دالة printf تحتاج إلى بعض التنظيم والتطوير
#include<conio.h>
#include<stdio.h>
#include<string>
#include <cstdarg>
#include <iostream.h>
void myprint(const char * a,...)
{
int size=strlen(a);
static char o = '%';
va_list arguments;
va_start(arguments, a);
for(int x = 0; x < size; x++)
{
if(x < size && a[x ] != o)
cout<<a[x];
if(a[x] == o)
if(x + 1 < size && a[x + 1] != o)
{
if(a[x + 1] == 's')
{
char* temp = va_arg(arguments, char*);
cout<<temp;
x++;
}
else if(a[x + 1] == 'd')
{
int temp = va_arg(arguments, int);
cout<<temp;
x++;
}
else if(x + 1 < size)
{
x++;
}
}
else
{
cout<<a[x];
}
}
va_end(arguments);
}
main()
{
int x=5,y=10;
myprint("%s %d + %d = %d","Test:",x,y,x+y);
return 0;
}تم تعديل هذه المشاركة بواسطة time1 في 25 أبريل 2008 في 14:11

اشهد ان لا إله إلا الله وان محمدا ً رسول الله
حسنا يبدو أن سؤالي غير مفهوم أن كنت أريد لفت الأنظار إلى خاصية الـ pointer to function
من أقوال الأئمة
الإمام علي بن أبي طالب -رضي الله عنه-: "الناس ثلاثة : فعالم رباني ، ومتعلم على سبيل النجاة ، وهمج رِعاع غوغاء أتباع كل ناعق ، يميلون مع كل ريح ، لم يستضيئوا بنور العلم ، ولم يلجئوا إلى ركن وثيق".
الإمام مالك -رحمه الله- : " لن يصلح آخر هذه الأمة إلا بما أصلح به أولها ".
الإمام الأوزاعي -رحمه الله- : " عليك بآثار من سلف وإن رفضك الناس وإياك وآراء الرجال وإن زخرفوه لك بالقول ".
الإمام الفضيل بن عياض -رحمه الله- : " عليك بطرق الهدى و لا يضرك قلة السالكين و إياك و طرق الضلالة ولا يغرك كثرة الهالكين ".
علامة الزمان الإمام الألباني -رحمه الله- : " إن الخلاص إلى أيدي هؤلاء الشباب يتمثل في أمرين لا ثالث لهما ؛ التصفية والتربية ".
وكل خير في اتباع من سلف وكل شر في ابتداع من خلف
inheritance -_-
تستطيع استخدام كود اسمبلي لصناعة هذه الدالة...
هذا هو حلي
#include<stdio.h>
void main()
{
int (*myprint)(const char*,...);
myprint=printf;
myprint("The result of %i %c %i is %i",3,'+',5,3+5);
}من أقوال الأئمة
الإمام علي بن أبي طالب -رضي الله عنه-: "الناس ثلاثة : فعالم رباني ، ومتعلم على سبيل النجاة ، وهمج رِعاع غوغاء أتباع كل ناعق ، يميلون مع كل ريح ، لم يستضيئوا بنور العلم ، ولم يلجئوا إلى ركن وثيق".
الإمام مالك -رحمه الله- : " لن يصلح آخر هذه الأمة إلا بما أصلح به أولها ".
الإمام الأوزاعي -رحمه الله- : " عليك بآثار من سلف وإن رفضك الناس وإياك وآراء الرجال وإن زخرفوه لك بالقول ".
الإمام الفضيل بن عياض -رحمه الله- : " عليك بطرق الهدى و لا يضرك قلة السالكين و إياك و طرق الضلالة ولا يغرك كثرة الهالكين ".
علامة الزمان الإمام الألباني -رحمه الله- : " إن الخلاص إلى أيدي هؤلاء الشباب يتمثل في أمرين لا ثالث لهما ؛ التصفية والتربية ".
وكل خير في اتباع من سلف وكل شر في ابتداع من خلف
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…