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

ما المشكلة في gets في مترجم لغة C

بدأه MKSoft في 2 فبراير 2010 · 3 رد · 517 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اقوم ببرنامج بسيطة بلغة C لكن واجهتني مشكلة في استخدام الدالة gets لإسترجاء قيمة نصية من المستخدم , بحيث يتوقف البرنامج عن العمل بعد استخدامها, و لا أدري ما السبب ؟؟؟!!

int main(int argc, char** argv) {

    char* name;
    int id;
    printf("Name : ");
    gets(name);
    printf("ID : ");
    scanf("%d",&id);
    return (EXIT_SUCCESS);
}
#2

عرف طول النص .

	char* name=malloc(20);
أو
char name[20];
tvquran_6.gif

#3
فهدالشلوي كتب:

عرف طول النص .

	char* name=malloc(20);
أو
char name[20];

شكرا أخي فهد ,, لكن جربت الحل و لم ينجح معي , حيث لم يعطني البرنامج فرصة لإدخال القيمة النصية للإسم Name , ومباشرة انتقل إلى ID و طلب مني إدخال القيمة .

علما أني استخدم مترجم MinGW مع NetBeans , لا أدري إن كان هناك علاقة .

#4

جرب الكود التالي:

#include <stdio.h>


int main(int argc, char** argv) {

	char* name=malloc(20);
	int id;
	printf("Name : ");
	gets(name);
	fflush(stdin);
	printf("ID : ");
	scanf("%d",&id);
	printf("ID:%d\nName:%s\n",id,name);
	free(name);
	getch();
	return 0;
}

تم تعديل هذه المشاركة بواسطة فهدالشلوي في 3 فبراير 2010 في 23:22

tvquran_6.gif

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