السلام عليكم
اريد ان اكتب برنامج يقوم بادخال اسماء طلاب
اريد ان ادخل اسم الطالب كامل دون ان اقوم بتحديد طول الاسم في البرنامج
وان اقوم بادخال الاسم مع فراغات مثلabdullah assad has
وشكرا
السلام عليكم
اريد ان اكتب برنامج يقوم بادخال اسماء طلاب
اريد ان ادخل اسم الطالب كامل دون ان اقوم بتحديد طول الاسم في البرنامج
وان اقوم بادخال الاسم مع فراغات مثلabdullah assad has
وشكرا

السلام عليكم,
لكي تعمل ما تريد يمكنك استعمال الدالة _cgets الموجودة في المكتبة conio.h وهي تعمل كالتالي :
char *_cgets( char *buffer )
buffer هو بافر يحجز طوله بقدر ما فيه الكفاية وحرصا على أن البايت الأول يكون فيه عدد البايتات التي يمكن أن نقراها وبعد هدا يعطينا النتيجة على شكل char*
وهدا الكود فيه مثال ندخل اسم الطالب مثلا ويكتب لنا اسم الطالب وطول الكتابة مع الفراغ. وهنا افترضت أن الاسم لا يطول على 98 وإدا لم يكفينا هدا فيمكن تغييره بسهولة في الكود .
المثال .
#include<iostream.h>
#include <conio.h>
void main()
{
char Buff[100]={98};
char* StudentName;
StudentName=_cgets(Buff);
cout << "\n The name is : "<<StudentName<<"\n";
cout<< "The lenght of the name is :"<<(int)Buff[1]<<"\n";
}أتمنى أن يكون هدا ما كنت تبحث عنه وأتمنى لك التوفيق.
إلى اللقاء.
إذا كنت تريد دالة يمكن بها وضع مسافات في إدخال الإسم
فالدالة هي cin.getline والموجودة في مكتبة iostream
كما في البرنامج التالي
#include <iostream>
using namespace std;
int main()
{
char student[30];
cout<<"enter student name: ";
cin.getline(student,30);
cout<<"\nstudent name: "<<student<<endl;
return 0;
}
هذا البرنامج يدخل إسم طالب واحد ويمكنك عمل مصفوفة طلاب إذا فهمت الفكرة.
تلاحظ أن طول الإسم مع الفواصل محدد ب 30 حرف و يمكنك تعديل ذلك إذا أردت.
اقتباساريد ان ادخل اسم الطالب كامل دون ان اقوم بتحديد طول الاسم في البرنامج
أخي الكريم لابد من تحديد طول الإسم لحجز مساحة له في الذاكرة ,,, و لكن إن أردت
أن تجعل الإسم محدود بحدود الذاكرة يمكنك أن تستخدم Linked list و تجعل في كل node
حرف و بذلك انت محدود بحدود الذاكرة فقط.
ولك تحياتي ,,,
طلال السبيعي.
هذا الموضوع مغلق.