উত্তর:
আপনি এর মতো একটি ডাবল '%' পোস্ট করে এড়াতে পারবেন: %%
আপনার উদাহরণ ব্যবহার করে:
printf("hello%%");
'%' চিহ্নটি ত্যাগ করা কেবল প্রিন্টফের জন্য। যদি তুমি করো:
char a[5];
strcpy(a, "%%");
printf("This is a's value: %s\n", a);
এটি মুদ্রণ করবে: This is a's value: %%
%
নির্দিষ্ট printf
, সঠিক?
\045
সংকলন-সময় অবলম্বন যা ভাষার অংশ এবং সংকলনের সময় রূপান্তরিত হয় %
। printf
রান-টাইম ফাংশন, সুতরাং এটি আপনার স্ট্রিংয়ের বাইটগুলি নিয়ে কাজ করে, সি উত্স কোডের সাথে নয় এবং এর নিজস্ব পালানোর ক্রম রয়েছে যা ফাংশনের অংশ । সংক্ষেপে, printf
এটি একটি "ভাষার ভিতরে ভাষা", এবং printf("This is a's value: %s\n", a);
একই ফলাফল দেয় printf("This is a's value: \045\0163\012", a);
।
printf("hello%c", '%');
। তবে %%
এটি আরও ভাল কারণ এটি অন্য যুক্তি ব্যবহার করে না।
অন্যরা যেমন বলেছে, %%% পালাতে পারবেন।
তবে মনে রাখবেন যে আপনার কখনই এটি করা উচিত নয়:
char c[100];
char *c2;
...
printf(c); /* OR */
printf(c2);
যখনই আপনাকে কোনও স্ট্রিং মুদ্রণ করতে হবে, সর্বদা, সর্বদা, সর্বদা এটি ব্যবহার করে মুদ্রণ করুন
printf("%s", c)
এম্বেড থাকা% কে সমস্যা সৃষ্টি করতে [মেমোরি লঙ্ঘন, সেগফল্ট ইত্যাদি] রোধ করতে
স্ট্রিংয়ে কোনও ফর্ম্যাট না থাকলে আপনি puts
(বা fputs
) ব্যবহার করতে পারেন :
puts("hello%");
যদি স্ট্রিংয়ে কোনও ফর্ম্যাট থাকে:
printf("%.2f%%", 53.2);
হিসাবে মন্তব্য উল্লেখ করা হয়েছে, puts
একটি appends \n
আউটপুট এবং fputs
না।
puts
। আমি কখনও puts
স্ট্রিং মুদ্রণের জন্য ভাবি নি এবং সরাসরি লাফিয়ে উঠি printf
। আর না.
নিজেই ...
printf("hello%%"); /* like this */
নিতপিক:
আপনি কার্যত (এবং ) ফাংশনটির %
ফর্ম্যাটটি নির্দিষ্ট করে এমন স্ট্রিংটিতে পালাতে পারবেন না ।printf()
scanf()
%
এ printf()
(এবং scanf()
) ফাংশন পরিবার, একটি রূপান্তর স্পেসিফিকেশন শুরু হয়। রূপান্তরকরণের নির্দিষ্টকরণের নিয়মের একটিতে বলা হয়েছে যে একটি রূপান্তর নির্দিষ্টকরণকারী %
হিসাবে (অবিলম্বে নিম্নলিখিতটি রূপান্তরকরণের নির্দিষ্টকরণটি অনুসরণ করে %
) কোনও '%'
অক্ষর রূপান্তরিত না করে একটি চরিত্রকে রচনার কারণ করে ।
স্ট্রিং সত্যিই 2 আছে '%'
(: যেমন অক্ষর পলায়নের উল্টোদিকে ভিতরে অক্ষর "a\bc"
; 3 অ নাল অক্ষর একটি স্ট্রিং "a%%b"
4 অ নাল অক্ষর একটি স্ট্রিং)।
সি তে ব্যাকস্ল্যাশ স্ট্রিংগুলিতে অক্ষরগুলি এড়াতে ব্যবহৃত হয়। স্ট্রিংস% কে একটি বিশেষ চরিত্র হিসাবে স্বীকৃতি জানায় না, এবং তাই কোনও পালানোর প্রয়োজন হবে না। প্রিন্টফ আরেকটি বিষয়: এক% মুদ্রণের জন্য %% ব্যবহার করুন।
তুমি ব্যবহার করতে পার %%:
printf("100%%");
ফলাফল হলো:
100%
আপনি %%
মুদ্রণের জন্য ব্যবহার করা উচিত ভুল ফর্ম্যাট স্পেসিফায়ার ব্যবহার করছেন %
। আপনার কোডটি হওয়া উচিত:
printf("hello%%");
সি তে ব্যবহৃত সমস্ত ফর্ম্যাট স্পেসিফায়ার আরও পড়ুন ।
আপনি কেবল %
দু'বার ব্যবহার করতে পারেন , এটি"%%"
উদাহরণ:
printf("You gave me 12.3 %% of profit");