Espacios de nombres
Variantes

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

De cppreference.com
 
 
 
 
<tbody> </tbody>
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.

Parámetros

(Ninguno)

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.

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.

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

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]