Namespaces
Variants

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

From cppreference.net
const value_type * c_str ( ) const noexcept ;
(1) (depuis C++17)
const string_type & native ( ) const noexcept ;
(2) (depuis C++17)
operator string_type ( ) const ;
(3) (depuis C++17)

Accède au nom de chemin natif sous forme de chaîne de caractères.

1) Équivalent à native ( ) . c_str ( ) .
2) Retourne la représentation au format natif du chemin d'accès par référence.
3) Retourne la représentation au format natif du chemin d'accès par valeur.

Table des matières

Paramètres

(aucun)

Valeur de retour

La représentation native de la chaîne du chemin d'accès, utilisant la syntaxe native, le type de caractère natif et l'encodage de caractères natif. Cette chaîne est adaptée à une utilisation avec les API du système d'exploitation.

Notes

La fonction de conversion (3) est fournie afin que les API qui acceptent std::basic_string comme noms de fichiers puissent utiliser les chemins d'accès sans modifications du code.

Exemple

#include <cstdio>
#ifdef _MSC_VER
#include <fcntl.h>
#include <io.h>
#else
#include <clocale>
#include <locale>
#endif
#include <filesystem>
#include <fstream>
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"; // Prior to LWG2676 uses operator string_type()
                                         // on MSVC, where string_type is wstring, only
                                         // works due to non-standard extension.
                                         // Post-LWG2676 uses new fstream constructors
    // Native string representation can be used with OS-specific APIs
#ifdef _MSC_VER
    if (std::FILE* f = _wfopen(p.c_str(), L"r"))
#else
    if (std::FILE* f = std::fopen(p.c_str(), "r"))
#endif
    {
        for (int ch; (ch = fgetc(f)) != EOF; std::putchar(ch))
        {}
        std::fclose(f);
    }
    std::filesystem::remove(p);
}

Sortie possible :

File contents

Voir aussi

retourne le chemin au format natif de nom de chemin converti en chaîne
(fonction membre publique)
retourne le chemin au format générique de nom de chemin converti en chaîne
(fonction membre publique)