My teacher just gave me an assignment in c++ and I am trying to get a string with scanf but it only get the last characters typed. Can anyone help me please? I am looking for the equivalent of console.readline() in c++.
edit : I must also be able to store the value through a pointer.
so the picture show the code currently runnign in the background and it should have stoped at No assurance maladie : and waited for an input but it skipped it.
getline(cin, ptrav->nam); works but it skip a line for some reason...
This method is used to read the next line of characters from the standard input stream. It comes under the Console class(System Namespace). If the standard input device is the keyboard, the ReadLine method blocks until the user presses the Enter key.
In C, the scanf() function is used to read formatted data from the console.
One of the most common uses of the ReadLine method is to pause program execution before clearing the console and displaying new information to it, or to prompt the user to press the Enter key before terminating the application.
The only difference between the Read() and ReadLine() is that Console. Read is used to read only single character from the standard output device, while Console. ReadLine is used to read a line or string from the standard output device.
You are looking for std::getline()
. For example:
#include <string>
std::string str;
std::getline(std::cin, str);
I've little idea what you mean when you say I must also be able to store the value through a pointer.
Update: Looking at your updated question, I can imagine what is happening. The code that reads the choice, i.e. the number 1, 2, etc. is not reading the newline. Then you call getline
which consumes the newline. And then you call getline
again which fetches the string.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With