সিটিতে "স্বাক্ষরবিহীন দীর্ঘ" কীভাবে প্রিন্ট করবেন?


342

unsigned longসিটিতে ডেটাটাইপ কীভাবে প্রিন্ট করা যায় তা আমি কখনই বুঝতে পারি না

ধরুন unsigned_fooএটি একজন unsigned long, তারপরে আমি চেষ্টা করে দেখি:

  • printf("%lu\n", unsigned_foo)
  • printf("%du\n", unsigned_foo)
  • printf("%ud\n", unsigned_foo)
  • printf("%ll\n", unsigned_foo)
  • printf("%ld\n", unsigned_foo)
  • printf("%dl\n", unsigned_foo)

এবং এগুলির সমস্তই আমার -123123123পরিবর্তে কোনও প্রকারের মুদ্রণ করে unsigned long

উত্তর:


499

%luএর জন্য সঠিক ফর্ম্যাট unsigned long। মনে হচ্ছে এখানে খেলতে অন্যান্য সমস্যা রয়েছে যেমন মেমরি দুর্নীতি বা অবিচ্ছিন্ন ভেরিয়েবল। সম্ভবত আমাদের আরও বড় ছবি দেখান?


12
উফফ, এবার %luকাজ করেছেন। ধন্যবাদ। এর আগে অন্য কিছু অবশ্যই ঘটেছে এবং এটি কার্যকর হয়নি।
bodacydo

1
@ বোডাসিডো: আপনি যদি কোনও বাগ পেয়ে থাকেন তবে এটি আধা-এলোমেলোভাবে উপস্থিত হতে পারে ... আপনার মুদ্রণের চেষ্টা করার আগে আপনার ভেরিয়েবলের কোনও বৈধ মান আছে কিনা তা নিশ্চিত করুন।
থানাটোস

1
এমনকি যদি ভেরিয়েবলটি অনির্দিষ্টকরণযোগ্য হয়, তবে বিন্যাসের স্পেসিফায়ারারের সময় প্রিন্টফ এমন কোনও বিন্দুতে পৌঁছা উচিত নয় যেখানে এটি একটি বিয়োগ চিহ্ন মুদ্রণ করতে পারে %lu। প্রযুক্তিগতভাবে এটি অনির্ধারিত আচরণ তবে বাস্তবে ভেরিয়েবলের একটি অনির্দেশ্য মান রয়েছে যা প্রিন্টফের কাছে যায় যা প্রিন্টফ এর পরে স্বাক্ষরবিহীন হিসাবে ব্যাখ্যা করে। আমি অনুমান করছি যে বোডাসিডোর আসল সমস্যাটি প্রবাহিত ছিল যার উদ্দেশ্যটির পরিবর্তে একটি ভুল প্রিন্টফ কল পৌঁছেছিল ...
আর ..

8
@ আনিশা কাউল:% lu একটি বৈধ রূপান্তরকরণের স্পেসিফিকেশন,% উল নয়। %lu, বিচ্ছিন্ন হ'ল: %- একটি "রূপান্তর স্পেসিফিকেশন" শুরু করে; l- দৈর্ঘ্য সংশোধক, এর lঅর্থ "[স্বাক্ষরযুক্ত] লং ইনট"; u- রূপান্তর নির্দিষ্টকরণকারী, uএটি unsigned intদশমিক হিসাবে মুদ্রিত হওয়ার জন্য। যেহেতু আমরা দৈর্ঘ্য সংশোধকটি দিয়েছি l, এটি তখন একটি গ্রহণ করে unsigned long int। বর্ণগুলি অবশ্যই সেই ক্রমে থাকা উচিত : শতাংশ, দৈর্ঘ্য, রূপান্তর। (প্রস্থ এবং যথার্থতার মতো আরও কয়েকটি বিকল্প রয়েছে যা আপনি যুক্ত করতে পারেন man ম্যান পৃষ্ঠাটি দেখুন , যেমন এটি সমস্ত কিছু নথিভুক্ত করে!)
সমস্তগুলি থানাটোস

1
% উল কেবল স্বাক্ষরবিহীন (% u সহ) মুদ্রণ করবে এবং তারপরে "l" অক্ষরটি অক্ষরযুক্ত করবে। ঠিক যেমন "% uw" স্বাক্ষরবিহীন মুদ্রণ করবে এবং তারপরে "w" অক্ষরটি প্রেরণ করবে। % কনসপেক শুরু করে, আপনি (বা অন্য কোনও চরিত্র, যেমন ডি, এস, সি ...) এটি শেষ করে।
ভিকি

30
  • %luজন্য স্বাক্ষরবিহীন দীর্ঘ
  • %lluজন্য স্বাক্ষরবিহীন দীর্ঘ দীর্ঘ

13
যোডা কনভেনশন: "স্বাক্ষরবিহীন দীর্ঘ" "(l) ওং (ইউ) এনসাইনড"।
রেব কেবিন

28

জন্য int- এ %d

জন্য দীর্ঘ int- এ %ld

জন্য দীর্ঘ দীর্ঘ int- এ %lld

জন্য স্বাক্ষরবিহীন দীর্ঘ দীর্ঘ int- এ %llu


23

সব সমন্বয় থেকে তোমাদের বের করে চেষ্টা করেছি, %ldএবং %luশুধুমাত্র বেশী যা সব সময়ে কার্যকর printf, বিন্যাস নির্দিষ্টকরী হয়। %lu(দীর্ঘ স্বাক্ষরযুক্ত দশমিক), %lxবা %lX(ছোট হাতের অক্ষর বা বড় হাতের %loঅক্ষরযুক্ত লম্বা হেক্সস ), এবং (দীর্ঘ অষ্টাল) হ'ল স্বাক্ষরযুক্ত দীর্ঘ ধরণের বৈকল্পিকের জন্য একমাত্র বৈধ ফর্ম্যাট স্পেসিফায়ার (অবশ্যই আপনি ক্ষেত্রের প্রস্থ, যথার্থতা ইত্যাদি সংশোধন করতে পারেন %এবং l)।


1
% ld স্ট্যান্ড :: সংখ্যার_মিলিট <স্বাক্ষরযুক্ত দীর্ঘ> :: সর্বাধিক () / 2 অবধি ভাল কাজ করবে। এর উপরে% ld ভুল মান (নেতিবাচক মান) মুদ্রণ করবে।
কৌশিক আচার্য

1
@ কৌশিকআচার্য: না, এর চেয়েও উপরে এটি ইউবি। এবং এটি যুক্তিযুক্ত এমনকি তার আগেও ইউবি, যেহেতু printfভাতাগুলি যা va_argহবে তা ছাড়াই সঠিক সঠিক যুক্তি প্রকারের জন্য নির্দিষ্ট করা হয়েছে।
আর .. গিথহাব বন্ধ হেল্পিং আইসিসি


9

বিন্যাসটি হ'ল %lu

অনুগ্রহ করে এখানে প্রিন্টফে অন্যান্য বিভিন্ন ডেটাটাইপ এবং তাদের ব্যবহার সম্পর্কে চেক করুন


2
নন-স্ট্যান্ডার্ড স্ট্যান্ডার্ডকে নন-স্ট্যান্ডার্ড হিসাবে চিহ্নিত না করে সেখানে নথিভুক্ত করা হয়। POSIX হ'ল প্রিন্টফের জন্য সহজতম অ্যাক্সেস অনলাইন স্ট্যান্ডার্ড; আইএসও সি ছাড়িয়ে এক্সটেনশানগুলি "সিএক্স" ট্যাগের সাথে চিহ্নিত করা হয়েছে: ওপেনগ্রুপ.org
আর ..

8

স্বাক্ষরবিহীন দীর্ঘ জন্য সঠিক নির্দিষ্টকারক হয় %lu

আপনি যে সঠিক মূল্য আশা করছেন তা যদি না পেয়ে থাকেন তবে আপনার কোডে কিছু সমস্যা হতে পারে।

আপনার কোড এখানে অনুলিপি করুন। তারপরে কেউ সমস্যা বলতে গেলে আপনাকে আরও ভাল বলতে পারে।


-5

আমারও একই সমস্যা ছিল। "% উল" চেষ্টা করে দেখুন, এটি আমার পক্ষে কাজ করে।


6
এই প্রশ্নের 8 বছরেরও বেশি আগে ব্যাপকভাবে উত্তর দেওয়া হয়েছিল। প্লাই নিশ্চিত করে যে একটি নতুন উত্তর নতুন তথ্য যুক্ত করেছে এবং আরও গুরুত্বপূর্ণ এমনকি সঠিক।
গেরার্ধ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.