std :: cin.getline () vs. std :: cin

Quando dovrebbe essere usato std::cin.getline() ? Cosa differisce da std::cin ?

Nel caso di char *, std::cin.getline ottiene la linea, invece di std::cin ottiene la prima parola.

Prendiamo std::cin.getline() parte. Innanzitutto, c’è std:: . Questo è lo spazio dei nomi in cui vive la libreria standard. Ha centinaia di tipi, funzioni e oggetti.

std::cin è un tale object. È l’object di input carattere standard, definito in . Ha alcuni metodi a parte, ma puoi anche usarlo con molte funzioni gratuite. La maggior parte di questi metodi e funzioni sono modi per ottenere uno o più caratteri dallo standard input.

Infine, .getline() è uno di questi metodi per std::cin (e altri oggetti simili). Digli quanti caratteri dovrebbe avere dall’object sul lato sinistro ( std::cin qui) e dove mettere quei personaggi. Il numero preciso di caratteri può variare: .getline() si fermerà in tre casi: 1. La fine di una linea viene raggiunta 2. Non ci sono caratteri rimasti nell’input (non accade normalmente su std::cin come te può continuare a digitare) 3. Viene letto il numero massimo di caratteri.

Esistono altri metodi e funzioni che possono essere utilizzati con l’object std::cin , ad es

  std::string s; int i; std::cin >> s; // Read a single word from std::cin std::cin >> i; // Read a single number from std::cin std::getline(std::cin, s); // Read an entire line (up to \n) from std::cin std::cin.ignore(100); // Ignore the next 100 characters of std::cin 

Hai letto qualche documentazione (es. http://www.cplusplus.com/reference/string/getline/ )?

Fondamentalmente, std::cin (o più in generale, qualsiasi std::istream ) è usato direttamente per ottenere input formattati, per esempio int x; std::cin >> x; int x; std::cin >> x; . std::cin.getline() è usato semplicemente per riempire un buffer char * grezzo.