Comment lire une ligne complète de l'utilisateur à l'aide de cin?
Voici mon code C++. Je voudrais savoir comment écrire une ligne de code. Ai-je toujours utiliser cin.getline(y)
ou quelque chose de différent? J'ai vérifié, mais ne peut pas trouver quoi que ce soit.
Quand je le lance, il fonctionne parfaitement sauf qu'il seulement les types un parole au lieu de la pleine lignes j'ai besoin d'elle à la sortie. C'est ce que j'ai besoin d'aide. J'ai décrit dans le code.
Merci pour votre aide
#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')
{
char y[3000];
cout << "What would you like to write." << endl;
cin >> y;
ofstream file;
file.open("Characters.txt");
file << strlen(y) << " Characters." << endl;
file << endl;
file << y; //<-- HERE How do i write the full line instead of one word
file.close();
cout << "Done. \a" << endl;
}
else
{
cout << "K, Bye." << endl;
}
}
Vous pourriez faire de votre titre de mieux refléter votre question. Aussi, vous devez préciser votre question, ce n'est pas vraiment clair ce que vous demandez.
K fait, Merci 🙂
Le problème est que
K fait, Merci 🙂
Le problème est que
cin >> y
stocke uniquement le premier mot de la ligne de l'utilisateur, la personne veut savoir comment stocker l'ensemble de la ligne en y, tels que file << y
écrit la ligne dans le fichier.OriginalL'auteur FuzionSki | 2011-03-28
Vous devez vous connecter pour publier un commentaire.
Le code
cin >> y;
ne lit que dans un seul mot, pas l'ensemble de la ligne. Pour obtenir une ligne, utiliser:Puis
response
contiendra le contenu de l'ensemble de la ligne.OriginalL'auteur ybakos
getline(std::cin, y);
au lieu decin >> y;
.La référence: cplusplus.com/reference/iostream/istream/getline
vous aurez aussi besoin du cin >> ws; autrement, le getline ne lire une nouvelle ligne
Lors de l'écriture de code comme une réponse à une question, s'il vous plaît ne jamais utiliser
using namespace std;
(vous devriez en fait presque jamais le faire, mais surtout pas dans les messages qui sont potentiellement lu par des débutants, qui ensuite le ramasser et de le penser il est OK). Le Code affiché dans les réponses est censé être un bon exemple.OriginalL'auteur hidayat
Vous pouvez utiliser getline fonction pour lire l'ensemble de la ligne, au lieu de lire mot par mot. Et Le cin>>ws est là pour ignorer les espaces blancs. Et vous trouverez quelques détails à ce sujet ici :
http://en.cppreference.com/w/cpp/io/manip/ws
OriginalL'auteur Yini Guo