Maison >développement back-end >C++ >Comment lire une ligne complète de saisie utilisateur à l'aide de getline() en C ?

Comment lire une ligne complète de saisie utilisateur à l'aide de getline() en C ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-17 06:33:03683parcourir

How to Read a Complete Line of User Input Using getline() in C  ?

Lecture d'une ligne complète avec getline() pour l'écriture de fichiers

En C, lire une ligne complète de saisie utilisateur peut être difficile. Cet article aborde le problème de la lecture de plusieurs mots à partir d'une ligne à l'aide de la fonction "cin".

Nous avons un code existant qui invite l'utilisateur à saisir une ligne de texte et l'écrit dans un fichier. Cependant, le code ne lit actuellement qu'un seul mot à la fois. Pour résoudre ce problème, nous devons utiliser la fonction "getline()" au lieu de "cin".

Le code corrigé devrait ressembler à ceci :

#include <iostream>
#include <cstdlib>
#include <cstring>
#include <fstream>

using namespace std;

int main()
{
    char x;

    cout << "Would you like to write to a file?" << endl;
    cin >> x;
    if (x == 'y' || x == 'Y')
    {
        string response;  // Changed data type to string
        cout << "What would you like to write?" << endl;
        getline(cin, response);  // Using getline() now

        ofstream file;
        file.open("Characters.txt");
        file << strlen(response) << " Characters." << endl;
        file << endl;
        file << response;

        file.close();

        cout << "Done. \a" << endl;
    }
    else
    {
        cout << "K, Bye." << endl;
    }

    return 0;
}

Le changement essentiel ici est le utilisation de "getline(cin, réponse)" au lieu de "cin >> y". "getline()" lit une ligne de texte, y compris les espaces, ce qui la rend adaptée à notre objectif.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn