Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::fgetws

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

      Reads at mostcount-1 wide characters from the given file stream and stores them instr. The produced wide string is always null-terminated. Parsing stops if end-of-file occurs or a newline wide character is found, in which casestr will contain that wide newline character.

      Contents

      [edit]Parameters

      str - wide string to read the characters to
      count - the length ofstr
      stream - file stream to read the data from

      [edit]Return value

      str on success, a null pointer on an error.

      [edit]Example

      Run this code
      #include <array>#include <clocale>#include <cstdio>#include <cstdlib>#include <cwchar>#include <cwctype>#include <iomanip>#include <iostream>#include <span>#include <string> void dump(std::span<constwchar_t> sp,std::size_t width=14){for(wchar_t wc: sp)std::wcout<<(std::iswprint(wc)? wc: L'.');std::wcout<<std::wstring(width> sp.size()? width- sp.size():1, L' ')<<std::hex<<std::uppercase<<std::setfill(L'0');for(wchar_t wc: sp)std::wcout<<std::setw(sizeof wc)<<static_cast<unsigned>(wc)<<' ';std::wcout<<'\n';} int main(){// Create temp file that contains wide charactersstd::setlocale(LC_ALL,"en_US.utf8");std::FILE* tmpf=std::tmpfile(); for(constwchar_t* text:{        L"Tétraèdre"    L"\n",        L"Cube"         L"\n",        L"Octaèdre"     L"\n",        L"Icosaèdre"    L"\n",        L"Dodécaèdre"   L"\n"})if(int rc=std::fputws(text, tmpf); rc==EOF){std::perror("fputws()");// POSIX requires that errno is setreturnEXIT_FAILURE;} std::rewind(tmpf); std::array<wchar_t,12> buf;while(std::fgetws(buf.data(), buf.size(), tmpf)!= nullptr)        dump(std::span(buf.data(), buf.size())); returnEXIT_SUCCESS;}

      Possible output:

      Tétraèdre...  0054 00E9 0074 0072 0061 00E8 0064 0072 0065 000A 0000 0000 Cube..dre...  0043 0075 0062 0065 000A 0000 0064 0072 0065 000A 0000 0000 Octaèdre....  004F 0063 0074 0061 00E8 0064 0072 0065 000A 0000 0000 0000 Icosaèdre...  0049 0063 006F 0073 0061 00E8 0064 0072 0065 000A 0000 0000 Dodécaèdre..  0044 006F 0064 00E9 0063 0061 00E8 0064 0072 0065 000A 0000

      [edit]See also

      reads formatted wide character input fromstdin, a file stream or a buffer
      (function)[edit]
      gets a wide character from a file stream
      (function)[edit]
      writes a wide string to a file stream
      (function)[edit]
      C documentation forfgetws
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/c/fgetws&oldid=160021"

      [8]ページ先頭

      ©2009-2025 Movatter.jp