كيفية الهروب من٪ (النسبة المئوية) تسجيل الدخول في طيار C؟

StackOverflow https://stackoverflow.com/questions/1860159

  •  13-09-2019
  •  | 
  •  

سؤال

كيف يمكنك الهروب من علامة٪ عند استخدامها printf في ج؟

printf("hello\%"); /* not like this */
هل كانت مفيدة؟

المحلول

يمكنك الهروب منه عن طريق نشر "٪" مزدوج مثل هذا: %%

باستخدام مثالك:

printf("hello%%");

الهروب من علامة "٪" هو فقط لبرنامج printf. اذا فعلت:

char a[5];
strcpy(a, "%%");
printf("This is a's value: %s\n", a);

سوف تطبع: This is a's value: %%

نصائح أخرى

كما قال آخرون، ٪٪ سوف يهرب من٪.

ملاحظة، ومع ذلك، يجب أن تفعل ذلك أبدا:

char c[100];
char *c2;
...
printf(c); /* OR */
printf(c2);

كلما اضطررت إلى طباعة سلسلة، دائما، دائما، قم دائما بطباعة تكنولوجيا المعلومات

printf("%s", c)

لمنع مدمج٪ من التسبب في مشاكل [انتهاكات الذاكرة، Segfault، إلخ

إذا لم تكن هناك تنسيقات في السلسلة، يمكنك استخدامها puts (أو fputs):

puts("hello%");

إذا كان هناك تنسيق في السلسلة:

printf("%.2f%%", 53.2);

كما لوحظ في التعليقات، puts إلحاق أ \n إلى الإخراج و fputs لا.

مع نفسه ...

printf("hello%%"); /* like this */

nitpick:
أنت لا تفلت حقا % في السلسلة التي تحدد التنسيق ل printf()scanf()) عائلة الوظائف.

ال %, ، في ال printf()scanf()) عائلة الوظائف، تبدأ مواصفات التحويل. تنص إحدى قواعد مواصفات التحويل على أن % كمحدد تحويل (مباشرة بعد % التي بدأت مواصفات التحويل) تسبب '%' حرف أن تكون مكتوبة بدون حجة تحويلها.

السلسلة هل حقا لديه 2 '%' الأحرف في الداخل (بدلا من الهروب من الشخصيات: "a\bc" هي سلسلة مع 3 شخصيات غير فارغة؛ "a%%b" هي سلسلة مع 4 أحرف غير فارغة).

استخدام ٪٪ ٪٪

مثله:

printf("hello%%");
//-----------^^ inside printf, use two percent signs together

يتم استخدام الخلفية في C للهروب من الأحرف في سلاسل. لن تتعرف السلاسل على٪ كحرف خاص، وبالتالي فإن أي هروب سيكون ضروريا. Printf مسألة أخرى: استخدم ٪٪ لطباعة واحد٪.

نعم، استخدم Printf ("Hello ٪٪")؛ ويتم ذلك.

يمكنك ببساطة استخدام % مرتين، وهذا هو "%%"

مثال:

printf("You gave me 12.3 %% of profit");

يمكنك استخدام ٪٪:

printf("100%%");

النتيجه هي:

100%

أنت تستخدم محدد تنسيق غير صحيح يجب عليك استخدامه %% للطباعة %. وبعد يجب أن يكون الكود الخاص بك:

printf("hello%%");  

اقرأ أكثر جميع محطات التنسيق المستخدمة في ج.

يعمل "٪" مزدوج أيضا في ".format (...). مثال (مع idrawaperturemask == 87، fcornerradmask == 0.05):csCurrentLine.Format("\%ADD%2d%C,%6.4f*\%",iDrawApertureMask,fCornerRadMask) ;يعطي القيمة المرغوبة والمتوقعة ل (محتويات سلسلة في) cscurrentline؛ "٪ Add87C، 0.0500 *٪"

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