Je suis en train de créer un éditeur de texte simple. J'ai besoin d'utiliser les fonctions void telles qu'elles sont listées. Je ne peux pas changer les paramètres. Je suis capable d'appeler la première fonction void open(file) mais pas la commande insert. J'ai testé la fonction open en affichant la structure avec un opérateur surchargé.
`int main()
{
editor_file file;
string command;
string insert;
cout << "Bienvenue dans TextEditor. Veuillez entrer un nom de fichier: ";
ouvrir(file);
cout << file;
cout << '>';
cin >> command;
if(command == insert)
{
insert(file); // erreur: pas de correspondance pour l'appel à '(std::string) (editor_file&)'
}
cout << file;
return 0;
}
`
fonctions void dans un fichier séparé
`void ouvrir(editor_file &file)
{
string line;
string filename;
ifstream fin(filename.c_str());
faire
{
cin >> filename;
fin.open(filename.c_str());
file.name = filename;
if(fin.fail())
{
cout << "Fichier invalide. ";
cout << "Veuillez entrer un autre nom de fichier: ";
}
} tandis que (fin.fail());
getline(fin, line);
pendant que(fin)
{
file.data += line + '\n';
getline(fin, line);
}
}
void insert(editor_file &file)
{
char character;
cin >> character;
chaîne info = file.data;
info.insert(file.cursor, character);
}
`
struct dans le fichier d'en-tête
`struct editor_file
{
std::string name;
std::string data;
int curseur;
bool est_ouvert;
bool est_sauvegardé;
editor_file():cursor(0),is_open(false), is_saved(true) {}
};
`