سؤال

أنا أتخلص كدخلات إلى برنامجي: "<param value=s/>"

يمكنني استخدام هذا الرمز:

char character[1];
sscanf(data, "<param value=%c/>", &character);
printf("%c", character);

ومع ذلك، يبدو أن الإخراج "S />" بدلا من Char فقط "S". ما هو الخطأ هنا؟

هل كانت مفيدة؟

المحلول

الرمز الخاص بك هو الصحيح، ولكن تحتاج إلى الإخراج character[0]:

printf("%c", character[0]);

يجب عليك إسقاط مشغل العناوين أمام character, ، كما لو sscanf() تتوقع حجة النوع char * و لا char (*)[1]:

sscanf(data, "<param value=%c/>", character);

نصائح أخرى

char character[1] يمكن استبدالها char character, ، إصلاح علة الخاص بك في نفس الوقت.

إذا كنت ترغب في الاحتفاظ character كصفيف، يجب عليك استخدام &character[0] أو character كما sscanf حجة، و character[0] كما printf جدال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top