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

مساعدة فى puts بعد إذنكم

مغلق
بدأه StrikerX في 12 أبريل 2007 · 7 رد · 527 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا كتبت الكود دا بس بيحصل مشكلة إن الناتج مش بيطلع على نفس السطر متتالى يعنى بدل مايطلع 1 2 3 4 بيطلع كدا

1

2

3

4

المفروض يحول الأرقام فى ال OUTPUT ل كد مثلا


|_ |_| _| |
_| | _| |
 _	  _  _


#include <stdlib.h>

int main()
{

char *ptr = malloc(50*(sizeof(char)));
int start = 0;


printf("Enter the numbers : ");
gets(ptr);
for (; *(ptr+start) != ''; start++)
{
switch (*(ptr+start))
{
case '0':
puts (" _ ");
puts ("| |");
puts ("|_|");
break;
case '1':
puts (" ");
puts ("|");
puts ("|");
break;
case '2':
puts (" _ ");
puts (" _|");
puts ("|_ ");
break;
case '3':
puts (" _ ");
puts (" _|");
puts (" _|");
break;
case '4':
puts (" ");
puts ("|_|");
puts (" |");
break;
case '5':
puts (" _ ");
puts ("|_ ");
puts (" _|");
break;
case '6':
puts (" _ ");
puts ("|_ ");
puts ("|_|");
break;
case '7':
puts (" _ ");
puts (" |");
puts (" |");
break;
case '8':
puts (" _ ");
puts ("|_| ");
puts ("|_|");
break;
case '9':
puts (" _ ");
puts ("|_| ");
puts (" _|");
break;
default:
break;
}

}

free(ptr);
fflush(stdin);
getchar();
puts("\n Hit Enter to terminate the Program ! \n ");
return 0;

}
#include <stdio.h>

إستبدلت puts ب printf وبردو نفس الناتج ... هل من مساعدة ؟

#2

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

أخ StrikerX ,, أنا لست من محبي C كثيراً و لكن أتمنى أن أشرح لك المشكلة هنا ,,

لقد فهمت من سؤالك أنك تريد المخرجات وراء بعضها دون أن يتم الإنتقال لسطر جديد في كل مرة تقوم بطباعة شيء ,,

المشكلة بالدالة puts لأنها تضيف n\ عند انتهاء النص في كل مرة باستبدالها بدلاً من 0\ ,, لذلك إذا أردت استخدام الدالة putchar و لكن المشكلة أنها تقبل حرف واحد في كل مرة ,,

تحياتي ,,

#3
المشكلة بالدالة puts لأنها تضيف n\ عند انتهاء النص في كل مرة باستبدالها بدلاً من 0\

اخي العزيز

\n ليست مكان لنهاية ال string هي مجرد squance لبداية سطر جديد ليس الا

لذا فهي لاتسبتلدها بل تظل قبلها

#4

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

اقتباس
\n ليست مكان لنهاية ال string هي مجرد squance لبداية سطر جديد ليس الا

لذا فهي لاتسبتلدها بل تظل قبلها

أخ st0rm-man ,, أنا لم أقل أن n\ هي نهاية النص بل قلت أن الدالة puts تضيفها عند طباعة أي نص و آخر حرف في النص هو 0\ لذلك عندما تواجه هذا الحرف فهي تستبدله بالسطر الجديد و ليست العملية كما تقول بأنه يتم إضافة n\ ثم يتم إضافة 0\ بعدها ,,

لأنك عندما تقوم بإدخال نص عن طريق الدالة gets فإنها تضيف 0\ في نهاية النص بدلاً من n\ لأنك تقوم بالضغط على Enter في نهاية الإدخال و Enter هي n\,, و بالتالي يصبح اسم المصفوفة "نص" بدلاً من "مصفوفة حروف" عادية كما هو معروف في C و ++C ,, و الدالة puts تقوم بطباعة آخر حرف وهو 0\ ,, و لكنها تستبدله بـ n\ كما قلت سابقاً أي أن عملية الإدخال و الإخراج مشابهة تقريباً من حيث التعامل مع الحرف 0\ لأنه حرف غير مقروء ,,

تحياتي ,,

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 13 أبريل 2007 في 00:05

#5

شكرا ليكم على مروركم ...

بس إيه الحل عشان انفذ المطلوب كدا :(

#6

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

هل تريد كل كل رقم في سطر أم أن الأعداد تريدها عبارة عن سطر واحد ,,

يعني ,, بعد تحويل كل رقم إلى الرموزالموجودة في البرنامج ,, هل تريد الرموز كلها في سطر واحد ( جميع أرقام المصفوفة ) أم كل رقم في سطر منفصل ,,

تحياتي

#7

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

بالظبط عايز الأرقام كلها تظهر على نفس السطر .. مش كل واحد فيهم على سطر

شكرا اهتمامك اخ خالد

#8

strikerX

انهيت البرنامج ..

ويينك.. فوووت........

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

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