je débute en c++ (et en QT). Je voulais savoir si quelqu'un savait par hasard comment écrire dans $HOME/monfichier ?
Pour le moment je fais
ofstream out("monfichier");
if(!out){
qWarning("File not opened");
exit(-1);
}
out<< "labla"<<\n';
out.close();
system("mv -f monfichier ~/monfichier");
Mais je pense que c'est une facon de faire assez sale. J'avais bien essayé en définissant pathfile=strcat((char *)getenv("HOME"), "monfichier"); et en écrivant dans pathfile, mais ca veut pas.
D'avance merci
# meuh
Posté par gc (site web personnel) . Évalué à 1.
regarde le man de strcat. il faut que le pointeur premier argument soit assez grand pour contenir le résultat final. là tu burrines dans l'environnement, c'est mal.
tu peux utiliser strcat correctement, ou utiliser asprintf, ou regarder ce qu'il existe dans les string C++, ou encore utiliser ce qui est dispo dans QT à ce propos.
[^] # Re: meuh
Posté par 桃白白 . Évalué à 2.
Effectivement, ca semble etre une bonne solution, j'étais bloqué de ne pas pouvoir écrire dans un fichier dont le nom est défini par un string, mais avec
std::string filename(pathfile);
std::ofstream out(filename.c_str());
que je viens de trouver, ca marche.
[^] # Re: meuh
Posté par Sebastien . Évalué à 3.
http://doc.trolltech.com/4.0/qdir.html
http://doc.trolltech.com/4.0/qfile.html
(Je ne suis pas un expert Qt mais comme tu as l'air de vouloir t'orienter vers cette bibliothèque portable...)
Et des trucs un peu plus C/C++:
http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html
http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/class(...)
http://www.erlenstar.demon.co.uk/unix/faq_3.html#SEC39
Si ça peut aider...
[^] # Re: meuh
Posté par brouillon . Évalué à 2.
permettent la concataination
exemple :
int i = 42;
string brol("toto");
ostringstream strbuf;
strbuf << i << " du texte " << brol << " et plein d'autres choses..." ;
// pour recuperer la string c++
string truc = strbuf.str();
// pour recuperer la chaine de caracteres C
const char* bidule = strbuf.c_str();
avec ceci tu peux donc tres simplement construire ton path
PS : l'utilisation de string avec buffer est en fait le comportement caché
utilisé lors de la concatenation de chaine de caracteres en Java.
[^] # Re: meuh
Posté par lmg HS (site web personnel) . Évalué à 1.
# Ca marche, mais c'est sale
Posté par Lalolali . Évalué à -2.
{
system (echo "blabla">FILE);
return 0)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.