C++ Erreur variable
HTML BOY
-
HTML BOY -
HTML BOY -
Bonjour, ce code ne marche pas :
Seriez-vous m'expliquer pourquoi ?
Merci de vos futurs réponse !
#include <cstdlib> #include <iostream> #include <fstream> using namespace std; int main() { string fichier; cout << "Veuillez entrer le nom du fichier à supprimer :" << endl; cin>>fichier; if(!remove(fichier)=0) { cout << "Suppression du fichier effectué !" << endl; } else { cout << "Erreure lors de la supression !" << endl; } int pause; cin>>pause; return 0; }
Seriez-vous m'expliquer pourquoi ?
Merci de vos futurs réponse !
A voir également:
- C++ Erreur variable
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
4 réponses
Bonjour,
La prochaine fois que tu as une erreur, n'hésite pas à copier coller le message d'erreur. Non seulement, il précise la ligne, mais en plus cela donne une idée de l'erreur.
Dans ton cas, l'erreur vient de if(!remove(fichier)=0)
En C++, l'opérateur de comparaison est == pas le simple =.
Cdlt,
La prochaine fois que tu as une erreur, n'hésite pas à copier coller le message d'erreur. Non seulement, il précise la ligne, mais en plus cela donne une idée de l'erreur.
Dans ton cas, l'erreur vient de if(!remove(fichier)=0)
En C++, l'opérateur de comparaison est == pas le simple =.
Cdlt,
Merci de ta réponse, mais cela m'affiche la même erreur :
error: cannot convert 'std::string' to 'const char*' for argument '1' to 'int remove(const char*)'|
Peux-tu parler en français STP ^^
Non, sérieux, je ne comprend pas du tout le message que tu essayes de me faire passer !
Désolé de mon manque de compréhension, mais je suis archi nul ...
Non, sérieux, je ne comprend pas du tout le message que tu essayes de me faire passer !
Désolé de mon manque de compréhension, mais je suis archi nul ...
Un peu d'anglais : error: cannot convert 'std::string' to 'const char*' for argument '1' to 'int remove(const char*)'
Erreur : impossible de convertir 'std::string" en 'const char*' dans la fonction int remove(const char*).
Effectivement, dans remove, il faut mettre une variable de type "const char*". Alors que toi tu as mis : string fichier, et non char fichier[20];
Si tu comprends pas ce qu'est une variable, un type, un const char*, je te conseille d'aller sur le site du zéro pour apprendre les bases. Sans ça, tu resteras souvent bloquer.
Cdlt,
Erreur : impossible de convertir 'std::string" en 'const char*' dans la fonction int remove(const char*).
Effectivement, dans remove, il faut mettre une variable de type "const char*". Alors que toi tu as mis : string fichier, et non char fichier[20];
Si tu comprends pas ce qu'est une variable, un type, un const char*, je te conseille d'aller sur le site du zéro pour apprendre les bases. Sans ça, tu resteras souvent bloquer.
Cdlt,
Merci !
Don voici mon code mis à jour :
Seulement les espaces tapé ne sont pas géré !!!
Comment puis-je y remédier ?
Don voici mon code mis à jour :
#include <cstdlib> #include <iostream> #include <fstream> #include <string> using namespace std; int main() { char fichier[20]; cout << "Veuillez entrer le nom du fichier à supprimer :" << endl; cin>>fichier; remove(fichier); cout << "La supression a été effectué avec succes !" << endl; int pause; cin>>pause; return 0; }
Seulement les espaces tapé ne sont pas géré !!!
Comment puis-je y remédier ?
Ha, petite erreur :
error: no matching function for call to 'getline(std::istream&, char [20])'
Mais en cherchant un peu, j'ai trouvé sa :
error: no matching function for call to 'getline(std::istream&, char [20])'
Mais en cherchant un peu, j'ai trouvé sa :
#include <cstdlib> #include <iostream> #include <fstream> using namespace std; int main() { string fichier; cout << "Veuillez entrer le nom du fichier à supprimer :" << endl; getline(cin,fichier); const char * fichier2 = fichier.data (); remove(fichier2); cout << "La supression a été effectué avec succes !" << endl; int pause; cin>>pause; return 0; }