std::filesystem::path::string, std::filesystem::path::wstring, std::filesystem::path::u8string, std::filesystem::path::u16string, std::filesystem::path::u32string
De cppreference.com
< cpp | filesystem | path
template< class CharT, class Traits = std::char_traits<CharT>, class Alloc = std::allocator<CharT> > |
(1) | (desde C++17) |
(2) | (desde C++17) | |
std::string string() const; |
||
std::wstring wstring() const; |
||
std::u16string u16string() const; |
||
std::u32string u32string() const; |
||
(3) | ||
std::string u8string() const; |
(desde C++17) (hasta C++20) |
|
std::u8string u8string() const; |
(desde C++20) | |
Devuelve el nombre de ruta de acceso interno en formato de nombre de ruta de acceso nativo, convertido al tipo de cadena específico. La conversión, si la hay, se ejecuta de la siguiente manera:
- Si
path::value_type
es char, la conversión, si la hay, es dependiente del sistema. Este es el caso en los sistemas POSIX habituales (tales como Linux), donde la codificación nativa es UTF-8 ystring()
no ejecuta ninguna conversión. - De lo contrario, si
path::value_type
es wchar_t, la conversión, si la hay, no está especificado. Este es el caso en Windows, donde wchar_t es 16 bit y la codificación nativa es UTF-16. - De lo contrario, si
path::value_type
es char16_t, la codificación nativa es UTF-16 y el método de conversión no está especificado. - De lo contrario, si
path::value_type
es char32_t, la codificación nativa es UTF-32 y el método de conversión no está especificado. - De lo contrario, si
path::value_type
es char8_t, la codificación nativa es UTF-8 y el método de conversión no está especificado.
1) Todas las asignaciones de memoria se ejecutan por a.
3) La codificación resultado en el caso de u8string() es siempre UTF-8.
Contenido |
[editar] Parámetros
(Ninguno)
[editar] Valor de retorno
El nombre de ruta de acceso interno en formato de nombre de ruta de acceso nativo, convertido al tipo de cadena específico.
[editar] Excepciones
Puede lanzar excepciones definidas por la implementación.
[editar] Ejemplo
Ejecuta este código
#include <cstdio> #include <clocale> #include <filesystem> #include <fstream> #include <iostream> #include <locale> int main() { const char* const localeName = "ja_JP.utf-8"; std::setlocale(LC_ALL, localeName); std::locale::global(std::locale(localeName)); const std::filesystem::path p(u8"要らない.txt"); std::ofstream(p) << "Contenido del archivo"; // representación de cadena nativa que puede usarse con las API del SO if (std::FILE* const f = std::fopen(p.string().c_str(), "r")) { int ch; while ((ch = fgetc(f)) != EOF) putchar(ch); std::fclose(f); } // la representación multibyte y ancha puede usarse para la salida std::cout << "\nNombre de archivo con codificación multibyte: " << p.string() << '\n'; // wstring() will throw in stdlibc++, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102839 std::wcout << "Nombre de archivo con codificación ancha: " << p.wstring() << '\n'; std::filesystem::remove(p); }
Posible salida:
Contenido del archivo Nombre de archivo con codificación multibyte: 要らない.txt Nombre de archivo con codificación ancha: 要らない.txt
[editar] Véase también
Devuelve la ruta de acceso en formato de nombre de ruta de acceso genérico convertido en una cadena. (función miembro pública) |