¿Cómo leer una línea completa del usuario que usa cin?

Aquí está mi código actual de C ++. Me gustaría saber cómo escribir una línea de código. ¿ cin.getline(y) usando cin.getline(y) o algo diferente? Lo he comprobado, pero no puedo encontrar nada. Cuando lo ejecuto, funciona perfectamente, excepto que solo escribe una palabra en lugar de las líneas completas que necesito para la salida. Esto es con lo que necesito ayuda. Lo describí en el código.

Gracias por ayudar

 #include  #include  #include  #include  using namespace std; int main() { char x; cout << "Would you like to write to a file?" <> x; if (x == 'y' || x == 'Y') { char y[3000]; cout << "What would you like to write." <> 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; } } 

El código cin >> y; solo lee en una palabra, no en toda la línea. Para obtener una línea, use:

 string response; getline(cin, response); 

Entonces la response contendrá los contenidos de toda la línea.

 #include  #include  #include  #include  #include  int main() { char write_to_file; std::cout << "Would you like to write to a file?" << std::endl; std::cin >> write_to_file; std::cin >> std::ws; if (write_to_file == 'y' || write_to_file == 'Y') { std::string str; std::cout << "What would you like to write." << std::endl; std::getline(std::cin, str); std::ofstream file; file.open("Characters.txt"); file << str.size() << " Characters." << std::endl; file << std::endl; file << str; file.close(); std::cout << "Done. \a" << std::endl; } else std::cout << "K, Bye." << std::endl; } 
 string str; getline(cin, str); cin >> ws; 

Puede usar la función getline para leer toda la línea en lugar de leer palabra por palabra. Y The cin >> ws está ahí para omitir espacios en blanco. Y encontrará algunos detalles al respecto aquí: http://en.cppreference.com/w/cpp/io/manip/ws