wchar_t / Wo is der rest geblieben??



  • Hi

    Also vollgendes weis is über wchar_t:

    Typ: Typedev in C, Type in C++;
    Größe: 16 Bit
    Zeichensatz: 65535 zeichen;
    Zeichentable: Uni-Code

    So vollgendes hab ich als Prob. Ich will alle 65535 zeichen nutzen und auch verarbeiten, doch wenn ich die einzeln inne datei schreibe oder bildschirmausgabe mache, dann bekomm ich immer nur angezeigt den zeichen satz von ASCII, aber wo zum geier is der rest geblieben???? Da könnt ich doch genauso gut Char nehmen, wenn ich was übersehen hab, dann sacht mal mal einer bescheid!

    Mein code:

    void start() {
    
    	wofstream out;
    	wchar_t n[65535];
    	out.open("test.txt", ios::app);
    	for(int i=1; i<65535; i++) {
    		//cout << "\b\b\b\b\b\b\b\b" << i;
    		n[i-1]=(wchar_t)i;
    	}
    	out << n;
    	wcout << n;
    	out.close();
    }
    

    Meine Bildausgabe:

    ?????
    ?¤????¶§?????????? !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]
    ^_`abcdefghijklmnopqrstuvwxyz{|}~¦ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡
    «»¦¦¦¦¦ÁÂÀ©¦¦++¢¥++--+-+ãÃ++--¦-+¤ðÐÊËÈiÍÎÏ++¦_¦Ì¯ÓßÔÒõÕµþÞÚÛÙýݯ´­±=¾¶§÷¸°¨·¹³²
    ¦ Press any key to continue

    So und wo is der rest? das sind doch och blos maximal 300 zeichen da fehlen noch paar tausend, wo sind die abgeblieben. Wenn ich das alles inne datei speichere is die normal och nur 512B groß egal ob ich die als ascii oder als uni hab!
    Helft mir mal! Ich werd sonst irre!



  • nur weil du sie nicht siehst, heisst es nicht, dass sie nicht da sind:
    eventuell können sie nicht dargestellt werden.. du brauchst ja den zeichensatz (den du net hast).
    obwohl ich meine mich zu erinnern, dass man dann wenigstens "schrott" sieht. sicher ist das aber net.

    teste mal folgendes:
    schreibe mit wchar_t in file, benutze <<endl; für "new-line" und öffne mit notepad. dann sollten kein zeilenumbrüche da sein (da notepad kein wchar_t kann :-).. dann weisst du was geht 🙂


Anmelden zum Antworten