פורסם 2012 באוקטובר 2813 שנים היי, בדיוק התחלתי להתעניין בשפת התכנות C, וכשניסיתי להזין קוד שיוציא פלט בעברית כל מה שקיבלתי זה ג'יבריש בCMD, הקוד עובד אבל המלל לא. סלחו לי על הבורות אבל זה אפשרי שהCMD יציג אותיות בעברית? תודה מראש, ושוב סליחה על השאלה המטופשת. הקוד, במקרה ולא ניסחתי את עצמי כשורה - #include <stdio.h>int main (){ printf("מלל כלשהו"); return 0;}
פורסם 2012 באוקטובר 2813 שנים תגיד אתה רציני זאת שאלה הכי מיותרת שמישהו שאל בקיצור שככתה לעשות start void main () ו int זה מספר שלם כמובן לא רושמים עם () תחפש בגוגל יש מלא מדרכים על איך להדפיס בפעם הראשונה
פורסם 2012 באוקטובר 2813 שנים ohadg: שימוש ב-void main הוא שגוי, וצריך לרשום int main. אם אתה לא מבין בתחום אז אני מבקש שלא תנסה לעזור...פותח הת'רד: יש כאן למעשה שתי בעיות. קודם כל, חלון הקונסולה, כברירת מחדל, לא יודע להציג עברית. חוץ מזה, הפונקציה printf מדפיסה מחרוזות ANSI, שגם כן לא תומכות בעברית. במקום זה צריך להשתמש בקידוד unicode, שיודע להכיל תווים עבריים (בין השאר).בשביל להתמודד עם הבעיה של printf צריך להשתמש בפונקציה wprintf, ככה:wprintf(L"מלל כלשהו");הפונקציה wprintf יודעת להדפיס מחרוזות unicode, וה-L שלפני המחרוזת אומר שהמחרוזת היא כזו.בשביל להתמודד עם הבעיה השנייה, מצאתי את הלינק הזה:http://stackoverflow.com/questions/2492077/output-unicode-strings-in-windows-console-appבקצרה הם אומרים להוסיף את השורה הבאה בתחילת התכנית:_setmode(_fileno(stdout), _O_U16TEXT);לא יודע אם זה עובד, אבל שווה לנסות (אתה יכול לנסות גם את הדברים האחרים שהציעו שם).
פורסם 2012 באוקטובר 2813 שנים מחבר ohadg: שימוש ב-void main הוא שגוי, וצריך לרשום int main. אם אתה לא מבין בתחום אז אני מבקש שלא תנסה לעזור... פותח הת'רד: יש כאן למעשה שתי בעיות. קודם כל, חלון הקונסולה, כברירת מחדל, לא יודע להציג עברית. חוץ מזה, הפונקציה printf מדפיסה מחרוזות ANSI, שגם כן לא תומכות בעברית. במקום זה צריך להשתמש בקידוד unicode, שיודע להכיל תווים עבריים (בין השאר). בשביל להתמודד עם הבעיה של printf צריך להשתמש בפונקציה wprintf, ככה: wprintf(L"מלל כלשהו"); הפונקציה wprintf יודעת להדפיס מחרוזות unicode, וה-L שלפני המחרוזת אומר שהמחרוזת היא כזו. בשביל להתמודד עם הבעיה השנייה, מצאתי את הלינק הזה: http://stackoverflow.com/questions/2492077/output-unicode-strings-in-windows-console-app בקצרה הם אומרים להוסיף את השורה הבאה בתחילת התכנית: _setmode(_fileno(stdout), _O_U16TEXT); לא יודע אם זה עובד, אבל שווה לנסות (אתה יכול לנסות גם את הדברים האחרים שהציעו שם). תודה רבה
פורסם 2012 באוקטובר 2813 שנים אה טוב חשבתי שהוא רוצה ללמוד שפת c לא שמתי לב לשאלה אבל ככה מתחילים בשפת c
פורסם 2012 באוקטובר 2813 שנים ממש לא ככה מתחילים בC. השימוש בvoid main הוא לא תקני, ויש לצערי מדריכים מיושנים שמלמדים לכתוב ככה (רוב המדריכים בעברית)... למרות שזה לא תקני כבר יותר מ20 שנה.
פורסם 2012 בנובמבר 313 שנים תוכניות אחרות שקוראות ל-main שלך עשויות לצפות לערך החזרה על מנת לדעת אם התרחשה שגיאה או לא.לתוכניות פשוטות כמובן ש ()void main יעבוד אבל זו טעות יסודית. תוכנית עלולה לקרוס רק בגלל איזה main שהוכרז כמחזיר void.אתה יכול לבדוק את הסטנדרט שמוגדר ב- ANCI C.
פורסם 2012 בנובמבר 413 שנים נצל"שאשמח לקבל מקור כתוב לאי-תקניות הזאת...המקור הוא כמובן הסטנדרט. יש קומפיילרים שלא ירשו ערך מוחזר אחר מאשר int פשוט. GCC למשל לא מרשה (כאשר מקמפלים ב++C). היסטורית זה מעולם לא היה מותר, בספר של K&R הושמט גם ה-int לפני שם הפונקציה אבל בC העדר ערך מוחזר לפני פונקציה הוא כמו החזרת int. לשואל המקורי (או לאחרים שמתעניינים) בלינוקס זה נעשה כך. זה מחייב שהקונסול יידע להדפיס UTF-8 עברי:#include <locale.h>#include <stdio.h>#include <wchar.h>int main(){ setlocale(LC_ALL, "he_IL.UTF-8"); wprintf(L"שלום עולם\n"); return 0;}
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.