Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::filesystem::path::string,std::filesystem::path::wstring,std::filesystem::path::u8string,std::filesystem::path::u16string,std::filesystem::path::u32string

      From cppreference.com
      <cpp‎ |filesystem‎ |path
       
       
      Filesystem library
      Classes
      Functions
      File types
       
      std::filesystem::path
      Member types
      Member constants
      Member functions
      Path decomposition
      Non-member functions
      (until C++20)(until C++20)(until C++20)(until C++20)(until C++20)(C++20)
      Helper classes
       
      template<class CharT,class Traits=std::char_traits<CharT>,

               class Alloc=std::allocator<CharT>>
      std::basic_string<CharT,Traits,Alloc>

          string(const Alloc& a= Alloc())const;
      (1)(since C++17)
      (2)(since C++17)
      std::string string()const;
      std::wstring wstring()const;
      std::u16string u16string()const;
      std::u32string u32string()const;
      (3)
      std::string u8string()const;
      (since C++17)
      (until C++20)
      std::u8string u8string()const;
      (since C++20)

      Returns the internal pathname in native pathname format, converted to specific string type. Conversion, if any, is performed as follows:

      • Ifpath::value_type ischar, conversion, if any, is system-dependent. This is the case on typical POSIX systems (such as Linux), where native encoding is UTF-8 andstring() performs no conversion.
      • Otherwise, ifpath::value_type iswchar_t, conversion, if any, is unspecified. This is the case on Windows, wherewchar_t is 16 bit and the native encoding is UTF-16.
      • Otherwise, ifpath::value_type ischar16_t, native encoding is UTF-16 and the conversion method is unspecified.
      • Otherwise, ifpath::value_type ischar32_t, native encoding is UTF-32 and the conversion method is unspecified.
      • Otherwise, ifpath::value_type ischar8_t, native encoding is UTF-8 and the conversion method is unspecified.
      1) All memory allocations are performed bya.
      3) The result encoding in the case ofu8string() is always UTF-8.

      Contents

      [edit]Parameters

      (none)

      [edit]Return value

      The internal pathname in native pathname format, converted to specified string type.

      [edit]Exceptions

      May throw implementation-defined exceptions.

      [edit]Example

      Run this code
      #include <clocale>#include <cstdio>#include <filesystem>#include <fstream>#include <iostream>#include <locale> int main(){constchar*const localeName="ja_JP.utf-8";std::setlocale(LC_ALL, localeName);std::locale::global(std::locale(localeName)); conststd::filesystem::path p(u8"要らない.txt");std::ofstream(p)<<"File contents"; // native string representation can be used with OS APIsif(std::FILE*const f=std::fopen(p.string().c_str(),"r")){for(int ch;(ch=std::fgetc(f))!=EOF;)std::putchar(ch); std::fclose(f);} // multibyte and wide representation can be used for outputstd::cout<<"\nFile name in narrow multibyte encoding: "<< p.string()<<'\n'; // wstring() will throw in stdlibc++ (as per gcc-12.1.0), see:// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95048// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102839// works with more recent gcc-12.2.1 (2023/02/01) and clang-10+std::wcout<<"File name in wide encoding: "<< p.wstring()<<'\n'; std::filesystem::remove(p);}

      Possible output:

      File contentsFile name in narrow multibyte encoding: 要らない.txtFile name in wide encoding: 要らない.txt

      [edit]See also

      returns the path in generic pathname format converted to a string
      (public member function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/filesystem/path/string&oldid=158110"

      [8]ページ先頭

      ©2009-2025 Movatter.jp