C ++ mbrtoc16 () - C ++ standardraamatukogu

Funktsioon mbrtoc16 () funktsioonis C ++ teisendab kitsa mitmebaidise märgi 16-bitiseks tähemärgiks.

Funktsioon mbrtoc16 () on määratletud päisefailis.

mbrtoc16 () prototüüp

 size_t mbrtoc16 (char16_t * pc16, const char * s, size_t n, mbstate_t * ps);

Funktsioon mbrtoc16 () teisendab maksimaalselt n s-ga tähistatud mitmebaidist tähemärki samaväärseks utf-16 tähemärgiks ja salvestab selle mäluasendisse, millele osutab pc16.

Kui s tähistab nullkursorit, ignoreeritakse n ja pc16 väärtusi ja kutse aadressile on samaväärne mbrtoc16-ga (NULL, "", 1, ps).

Kui saadud tähemärk on null, tähistab teisenduse olek * ps algset nihkeolekut.

mbrtoc16 () parameetrid

  • pc16: kursor mälukohta, et salvestada saadud 16-bitine märk.
  • s: kursor mitmebaidise tähe teisendamiseks.
  • n: teisendatavate baitide maksimaalne arv sekundites.
  • ps: osuti mbstate_t objektile, mida kasutatakse mitmebaidise stringi tõlgendamisel.

mbrtoc16 () Tagastusväärtus

Funktsioon mbrtoc16 () tagastab esimese järgmise väärtuse, mis vastab järgmistele juhtumitele:

  • 0, kui teisendatud märk on nullmärk.
  • edukalt 16-bitiseks teisendatud mitmebaidise märgi baitide arv (maksimaalselt n).
  • -3, kui char16_tmulti-char16_t tähemärgist järgmine (nt asenduspaar) on nüüd kirjutatud * pc16. Sellisel juhul ei töödelda sisendist ühtegi baiti.
  • -2, kui järgmised n baiti moodustavad mittetäieliku, kuid seni kehtiva mitmebaidise tähemärgi. Sel juhul ei kirjutata * pc16 midagi.
  • -1, kui ilmneb kodeerimisviga. Sel juhul ei kirjutata midagi arvutisse * pc16, errno väärtuseks määratakse EILSEQ ja * ps väärtus pole täpsustatud.

Näide: Kuidas funktsioon mbrtoc16 () töötab?

 #include #include #include #include using namespace std; int main(void) ( char16_t pc16; char s() = "x" ; mbstate_t ps(); int length; length = mbrtoc16(&pc16, s, MB_CUR_MAX, &ps); if (length < 0) ( perror("mbrtoc16() fails to convert"); exit(-1); ) cout << "Multibyte string = " << s << endl; cout << "Length = " << length << endl; printf ("16-bit character = 0x%04hx", pc16); return 0; )

Programmi käivitamisel on väljund järgmine:

 Mitmebaidine string = x Lengt> h = 1 16-bitine märk = 0x0078

Huvitavad Artiklid...