Boost_filesystem kullanıldığında, Boost dosya isimlerine tırnak işaretleri eklemeye devam ediyor.boost :: dosya sistemi tırnak işareti ekliyor mu?
foo.cpp: Derleyen
#include <iostream>
#include <boost/filesystem.hpp>
int main(int argc, char * argv[])
{
std::cout << argv[0] << std::endl;
boost::filesystem::path p(argv[0]);
std::cout << p << std::endl;
std::cout << p.filename() << std::endl;
return 0;
}
:
g++ foo.cpp -o foo -lboost_filesystem -lboost_system
Çıktı:
./foo
"./foo"
"foo"
Bu benim durumumda biraz beklenmedik ve zahmetli bir iştir. Bu gerçekten kasıtlı mı, yoksa bu benim için daha eski bir Boost (1.46.1) arabası mı? Eklenmelerini önlemek için bir yol var mı?
Dokümantasyona göz attım, ancak örnek çıktılarında bu tırnak işaretlerini gösteren öğreticilerinin dışında, ben aydınlanmamıştım.
Eh, ben de Tırnakları kendim ekleyebilir gömülü alanların korkuyorum eğer. Bir günlük çıktısında dosya adını kullanmadan önce bunları * kaldırmak * zorunda olmak bir sıkıntı olsa da - ve 'replace_all()' gerçekten yardımcı olmaz çünkü beyin ölümü olabileceğinden gömülü olabilir * tırnak işareti olabilir * dosya adı da. ;-) – DevSolar
Tamam, ama hata raporunun önerdiği şeyi yapabilirsin: std :: cout << p.filename(). String() << std :: endl; –
Bitti, test edilmedim ve işlenmeden önce burada bile cevaplandım/cevaplandım. ;-) – DevSolar