كيفية برينتف "غير موقعة طويلة" في ج?
-
13-09-2020 - |
سؤال
لا أستطيع أبدا فهم كيفية الطباعة 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
هذا ما لدي.
المحلول
%lu
هو التنسيق الصحيح ل unsigned long
.يبدو أن هناك مشكلات أخرى قيد التشغيل هنا ، مثل تلف الذاكرة أو متغير غير مهيأ.ربما تظهر لنا صورة أكبر?
نصائح أخرى
%lu
بالنسبة موقعة طويلة%llu
بالنسبة غير طويل
بالنسبة الباحث %d
بالنسبة طويلة الباحث %ld
بالنسبة كثافة طويل %lld
بالنسبة موقعة كثافة طويل %llu
من بين كل المجموعات التي جربتها, %ld
و %lu
هي الوحيدة التي هي محددات تنسيق برينتف صالحة على الإطلاق. %lu
(عشري طويل غير موقع), %lx
أو %lX
(عرافة طويلة بأحرف صغيرة أو كبيرة) ، و %lo
(ثماني طويل) هي محددات التنسيق الصالحة الوحيدة لمتغير من النوع غير موقع طويل (بالطبع يمكنك إضافة عرض الحقل والدقة والمعدلات وما إلى ذلك بين %
و ال l
).
سيكون هذا مفيدا.وبعد.
الشكل هو %lu
.
يرجى التحقق من مختلف أنواع البيانات الأخرى واستخدامها في برينتف هنا
المحدد الصحيح لفترة طويلة غير موقعة هو %lu
.
إذا كنت لا تحصل على القيمة الدقيقة التي تتوقعها ثم قد يكون هناك بعض المشاكل في التعليمات البرمجية الخاصة بك.
يرجى نسخ الرمز الخاص بك هنا.ثم ربما يمكن لشخص ما أن يخبرك بشكل أفضل ما هي المشكلة.
كان لدي نفس المشكلة.حاول "٪ ul"، وهو يعمل بالنسبة لي.