Espacios de nombres
Variantes
Acciones

std::filesystem::path::c_str, std::filesystem::path::native, std::filesystem::path::operator string_type()

De cppreference.com
< cpp‎ | filesystem‎ | path
 
 
 
 
const value_type* c_str() const noexcept;
(1) (desde C++17)
const string_type& native() const noexcept;
(2) (desde C++17)
operator string_type() const;
(3) (desde C++17)

Accede al nombre de ruta de acceso nativo como una cadena de caracteres.

1) Es equivalente a native().c_str().
2) Devuelve la representación en formato nativo del nombre de ruta de acceso por referencia.
3) Devuelve la representación en formato nativo del nombre de ruta de acceso por valor.

Contenido

[editar] Parámetros

(Ninguno)

[editar] Valor de retorno

La representación de la cadena nativa del nombre de la ruta, utilizando la sintaxis nativa, el tipo de carácter nativo y la codificación de carácter nativo. Esta cadena es adecuada para su uso con las API del sistema operativo.

[editar] Notas

La función de conversión (3) se proporciona para que las API que aceptan nombres de archivo usando std::basic_string puedan usar nombres de ruta de acceso sin cambios en el código.

[editar] Ejemplo

#include <cstdio>
#ifdef _MSC_VER
#include <io.h>
#include <fcntl.h>
#else
#include <locale>
#include <clocale>
#endif
#include <fstream>
#include <filesystem>
 
int main()
{
#ifdef _MSC_VER
    _setmode(_fileno(stderr), _O_WTEXT);
#else
    std::setlocale(LC_ALL, "");
    std::locale::global(std::locale(""));
#endif
 
    std::filesystem::path p(u8"要らない.txt");
    std::ofstream(p) << "File contents"; // Antes de LWG2676 usa operador string_type()
                                         // en MSVC, donde string_type es wstring; solo
                                         // funciona debido a extensión no estándar.
                                         // Posterior a LWG2676 usa nuevos constructores de fstream
 
    // la representación de cadena nativa puede usarse con las API del SO
    if (std::FILE* f =
#ifdef _MSC_VER
                _wfopen(p.c_str(), L"r")
#else
                std::fopen(p.c_str(), "r")
#endif
        )
    {
        int ch;
        while((ch=fgetc(f)) != EOF) putchar(ch);
        std::fclose(f);
    }
 
    std::filesystem::remove(p);
}

Posible salida:

Contenido del archivo

[editar] Véase también

Devuelve la ruta de acceso en un nombre de ruta de acceso convertido a una cadena.
(función miembro pública) [editar]
Devuelve la ruta de acceso en formato de nombre de ruta de acceso genérico convertido en una cadena.
(función miembro pública) [editar]