كيفية الهروب من٪ (النسبة المئوية) تسجيل الدخول في طيار C؟
-
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، إلخ
مع نفسه ...
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 *٪"