מערך מסוג wchar_t

  • פותח הנושא ASHY
  • פורסם בתאריך

ASHY

New member
מערך מסוג wchar_t

כאשר אני מנסה לעשות מערך של wchar_t (בין אם זה מערך של תווים באנגלית או בעברית) המהדר מחזיר לי שגיאה:
error: int-array initialized from non-wide string​
הקוד עצמו הוא מאוד פשוט:
#include <iostream> int main() { wchar_t a[] = "ah??"; std::cout << a << std::endl; return 0; }​
למישהו יש מושג מה קרה פה? תודה מראש
 

annefan

New member
הוא אומר לך

אתה מנסה לאתחל מערך של wchar_t במחרוזת שהיא לא wide-char. תוסיף L לפני המחרוזת:
wchar_t a[] = L"ah??";​
 

ASHY

New member
אוקיי עכשיו שאלה חדשה עלתה

cout יודע להציג wchar_t? כלומר התוכנית הבאה:
#include <iostream> using namespace std; int main() { wchar_t a[] = L"ah??"; cout << "a = " << a << endl; cout << "*a = " << *a << endl; cout << "g = " << L'g' << endl; return 0; }​
מציגה את הפלט הנ"ל:
a = 0xbffff4a0 *a = 97 g = 103​
איך אני מסדר את cout להציג wchar_t בצורה נורמלית?
 

galh

New member
חיים? אתה רואה תוכן בהודעה? ../images/Emo3.gif

 
למעלה