Hvad gør cin.getline i C ++?


Bedste svar

cin.getline () giver dig mulighed for at indtaste en streng, som har også hvide rum. Dens syntaks er som følger: cin.getline (strengens navn, strengens størrelse); Overvej følgende eksempel: Antag at jeg går ind i Hello World for både str og strr. # inkludere ved hjælp af namespace std;

int main()

{

char str[100]", strr[100];

cout<<"Enter the strings : ";

cin.getline( str, 100 ); //enter Hello World

cin>>strr; //enter Hello Word.

cout<

cout<

return 0;

}

Dette er den grundlæggende forskel. cin tager ikke højde for de hvide mellemrum i strengen, mens cin.getline overvejer.

Svar

Dette er et af de mest almindelige problemer, som elever generelt står over for, når de bruger getline () funktion.

På det tidspunkt du kører dit program, skal du skrive Delhi og derefter trykke på Enter-tasten. Denne enter-nøgle er intet andet end newline-tegnet. Mellemrumstegn, såsom faneområde og \ n, ignoreres (springes normalt over), når der indtastes værdi ved hjælp af cin.

Der er typisk ekstra tegn tilbage i inputstrømmen, efter at input er angiveligt afsluttet. De sendes derefter videre til den næste inputoperation, selvom de ikke er beregnet til det. Ofte er det en newline-karakter, der forbliver bagved, men nogle gange er andre tegn også tilovers.

I dit program fungerer denne newline-karakter som input til getline () -funktionen. Da denne funktion fik sit input, tillader den dig ikke at indtaste værdien. Du skal slippe af med dette tegn, og så fungerer dit program helt fint.

For at slippe af med disse fremmede tegn, ignorere (MAX, DELIM) medlemsfunktion i istream-klassen bruges. Den læser og smider op til MAX tegn, inklusive det specificerede skilletegn. Brug denne funktion, inden du kalder getline () -funktionen som:

cin.ignore (1, "\ n");

Da de ekstra tegn muligvis også indeholder hvidt mellemrum (f.eks. efter at have skrevet Delhi , skal du sætte noget mellemrum og derefter trykke på enter-tasten), i stedet for 1 ville det være mere sikkert at bruge 10.

cin.ignore (10, "\ n");

Vær ikke bekymret for istream-klasse. Det erklæres i IOSTREAM-headerfil. Desuden , getline () er også en medlemsfunktion i selve istream-klassen.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *