2017-04-12 23 views
0

In meinem Code möchte ich überprüfen, ob die Eingabetaste gedrückt wird, wenn der Eingabewert nicht eingegeben wird. Denn normalerweise drückt die Eingabetaste nur eine neue Zeile, bis die Eingabe nicht eingegeben wird, und stattdessen möchte ich, dass in diesem Fall ein Befehl durch Erkennen der Eingabetaste gedrückt wird.Überprüfung der leeren Eingabe in C++ durch "Enter" -Taste Erkennung

#include <iostream> 
    #include <string> 
    using namespace std; 

    int main(){  
     String str=""; 
     while(str!="exit"){ 
      cin>>str; 
      if(input is not entered and enter key is pressed) 
      continue; 
      else 
      break; 
     } 
     return 0; 
    } 

Ich bin offen für irgendwelche Vorschläge.

Antwort

0
#include<iostream> 
#include<conio.h> 
#include <string> 
using namespace std; 
int main() 
{  
char str[10]; 
char a; 
int i=0; 
cout<<"\nEnter the input :-"; 
do{ 
     a=getche(); 
     if(a!=13) 
     { 
     str[i]=a; 
     i++; 
     } 
     else 
      break; 
    } 
    while(a!=13); 
    return 0; 
} 

/* IM OBIGEN CODE getch(); IST DIE METHODE, EINEN EINZELNEN ZEICHENEINGANG ZU NEHMEN, OHNE SIE AUF DER KONSOLE/AUSGANGSBILDSCHIRM ZU DRUCKEN, WENN DER EINGANG GEWESEN WIRD, WENN ES MIT 13 GEPRÜFT IST, IST 13 DER ASCII-WERT FÜR EINGABE-TASTE. WENN DAS PASST, DANN KÜNDIGT ES NACH IHRER ANFORDERUNG ..... */

0

Hier ist ein komplettes Beispiel. Kurz gesagt, Sie können getline von <string> verwenden und es wird Ihnen auch leere Eingabe geben, wenn Sie die Enter Taste drücken.

#include <iostream> 
#include <string> 

int main() 
{ 
    while(true) 
    { 
     std::string in; 
     getline(std::cin, in); 

     if (in.empty()) 
     { 
      std::cout << "Enter key was pressed with no message" << std::endl; 
     } 
     else 
     { 
      std::cout << "Enter key was pressed with message" << in << std::endl; 
     } 
    } 
    return 0; 
}