2 votes

La fonction void ne fonctionne pas en c++

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) {}
};
`

3voto

AndyG Points 3298

Essayez de renommer votre

insertion de chaîne

En quelque chose comme

strInsertion de chaîne

C'est parce que vous ne devez pas utiliser le même nom pour une variable et une fonction!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X