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!