אני משתגע, מה רושמים אחרי ה% במשתנים מסוג unsegned long - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

אני משתגע, מה רושמים אחרי ה% במשתנים מסוג unsegned long


SweeT_EviL

Recommended Posts

%lu

לקלט בבסיס עשרוני.

צודק, באמת 2

אבל חיפוש אחד מתאים בגוגל מניב את התוצאות הרצויות.

כאן יש, אני מקווה, את מה שאתה צריך

http://www-ccs.ucsd.edu/c/lib_prin.html

חיפוש כזה יעשה את העבודה:

"unsigned long" + printf

אולי הייתה לך בעיה של שגיאת כתיב

"unsegned "

קישור לתוכן
שתף באתרים אחרים

תודה!

תאמת ניסיתי כל מיני חיפושים ביניהם

unsigned long "%u"

ועוד כמה אותויות, אבל לא עזר.[br]פורסם בתאריך: 10.08.2007 בשעה 16:58:10


לא נראה לי שזה טוב, כי כשאני עושה את המשתנה INT וקולט עם %D פונקציה מסויימת עובדת לי, אבל כשאני מחליף לlu הפונקציה מציגה לי ערכים לא הגיוניים.

עריכה:

0 דאבל, סורי.

קישור לתוכן
שתף באתרים אחרים

הפונקציה מחזירה לך משתנה מסוג int. היצוג שלו בזכרון שונה מסוג long ומ Un Long. אחרי שאתה מקבל את הספרה, אתה מדפיס אם תו הסבה %d או %UL?

כי אם %D זה צריך לעבוד (ועובד) בלי בעייה.

קישור לתוכן
שתף באתרים אחרים

אז פה הבעייה, המשתנה שהפונקציה מחזירה הוא INT. INT ו ULONG נשמרים בזכרון בצורה שונה, ה %D וה %UL מציניים לקומפילר איזה סוג של המשתנה הם אמורים לקרוא ובאיזו צורה.

מה שבעצם קורה זה שאתה מנסה לקרוא INT לא בצורה בה הוא שמור( משלים ל 2) אלה בצורה שבה ULONG שמור, והוא קורה את הנתונים בצורה שונה.


int dig;
unsigned long num = 12345;
int numDig = 3;

dig = iFromRight(num,numDig);

printf("%d \n", dig);

עובד תקין.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...