2017-08-16 3 views
-1

je tentais de prendre d'entrée nombre variable de chaînes et numbers.Found cette solution link:Comment prendre variable d'entrée de stdin en C++

J'ai essayé pour nombre:

#include<iostream> 
using namespace std; 
int main(){ 
    int np; 
    while (cin>>np){ 
     cout << np<<endl; 
    } 
    return 0; 
} 

pour cordes:

#include<iostream> 
#include<string> 
using namespace std; 
int main(){ 
    string line; 
    while (getline(cin, line)){ 
     cout << line <<endl; 
    } 
    return 0; 
} 

Mais, quand je lance le code, même si j'appuie simplement sur enter, il ne sortira pas de la boucle. La boucle devrait se terminer si seulement une touche d'entrée est pressée, mais cela ne se produit pas.

Veuillez fournir des suggestions pour réaliser cette fonctionnalité.

+5

La touche Entrée est toujours une chaîne valide. –

+0

alors comment arrêter d'entrer s'il n'y en a plus? – ssharma

+1

Selon le système d'exploitation. Si la mémoire sert, dans Windows, c'est «Ctrl + Z», dans Unix c'est «Ctrl + D». – Abstraction

Répondre

2

Vous pouvez écrire

while (std::getline(std::cint, line) && !line.empty()) { 
    // ... 
} 

TENIR en boucle lorsque la chaîne est tiré par les cheveux non vide.