Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::fwide

      From cppreference.com
      <cpp‎ |io‎ |c
       
       
       
       
      Defined in header<cwchar>
      int fwide(std::FILE* stream,int mode);

      Ifmode>0, attempts to makestream wide-oriented. Ifmode<0, attempts to makestream byte-oriented. Ifmode==0, only queries the current orientation of the stream.

      If the orientation of the stream has already been decided (by executing output or by an earlier call to fwide), this function does nothing.

      Contents

      [edit]Parameters

      stream - pointer to the C I/O stream to modify or query
      mode - integer value greater than zero to set the stream wide, less than zero to set the stream narrow, or zero to query only

      [edit]Return value

      An integer greater than zero if the stream is wide-oriented after this call, less than zero if the stream is byte-oriented after this call, and zero if the stream has no orientation.

      [edit]Example

      The following code sets and resets the stream orientation.

      Run this code
      #include <cstdio>#include <cstdlib>#include <cwchar>#include <iostream> void show_orientation(int n){    n<0?std::wcout<<"\tnarrow orientation\n":    n>0?std::wcout<<"\twide orientation\n":std::wcout<<"\tno orientation\n";} void try_read(FILE* fp){if(constint c=std::fgetc(fp); c==EOF)std::wcout<<"\tnarrow character read failed\n";elsestd::wcout<<"\tnarrow character read '"<<static_cast<char>(c)<<"'\n"; if(const wint_t wc=std::fgetwc(fp); wc== WEOF)std::wcout<<"\twide character read failed\n";elsestd::wcout<<"\twide character read '"<<static_cast<wchar_t>(wc)<<"'\n";} int main(){enum fwide_orientation:int{ narrow=-1, query, wide};     FILE* fp=std::fopen("main.cpp","r");if(!fp){std::wcerr<<"fopen() failed\n";returnEXIT_FAILURE;} std::wcout<<"1) A newly opened stream has no orientation.\n";    show_orientation(std::fwide(fp, fwide_orientation::query)); std::wcout<<"2) Establish byte orientation.\n";    show_orientation(std::fwide(fp, fwide_orientation::narrow));    try_read(fp); std::wcout<<"3) Only freopen() can reset stream orientation.\n";if(std::freopen("main.cpp","r", fp)==NULL){std::wcerr<<"freopen() failed\n";returnEXIT_FAILURE;} std::wcout<<"4) A reopened stream has no orientation.\n";    show_orientation(std::fwide(fp, fwide_orientation::query)); std::wcout<<"5) Establish wide orientation.\n";    show_orientation(std::fwide(fp, fwide_orientation::wide));    try_read(fp); std::fclose(fp);}

      Possible output:

      1) A newly opened stream has no orientation.        no orientation2) Establish byte orientation.        narrow orientation        narrow character read '#'        wide character read failed3) Only freopen() can reset stream orientation.4) A reopened stream has no orientation.        no orientation5) Establish wide orientation.        wide orientation        narrow character read failed        wide character read '#'

      [edit]See also

      opens a file
      (function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/c/fwide&oldid=158705"

      [8]ページ先頭

      ©2009-2025 Movatter.jp