Reputation: 171
I'm not sure what I'm missing here. This is a snippet of code that I found on a site and I placed it in my program to see how it works and then I would modify it to my liking later. I am including iostream and this code snippet is in my main function.
char buffer[80];
cout << "Enter the string: ";
cin.get(buffer, 79); // get up to 79 or newline
cout << "Here's the buffer: " << buffer << endl;
What is happening is that the program never asks for the user input. It just seems to print out the two cout statements and then ends. The site where I got the snippet from shows the output of:
Enter the string: Hello World
Here's the buffer: Hello World
Upvotes: 0
Views: 2800
Reputation: 5939
To get new line as delimiting character, you should use
cin.get(buffer, 79, '\n');
Upvotes: 0
Reputation: 14326
The code returns whatever was in the input buffer at the time, most likely nothing.
Just to check type some data in a file, then run your program and add "< myfile" to see if the data gets loaded in your buffer.
You need to do some console manipulation if you want to wait for data.
Upvotes: 1
Reputation: 490128
My advice would be to forget the existence of this snippet and look up std::getline
instead. You'd use it something like this:
#include <string>
#include <iostream>
int main() {
std::string buffer;
std::getline(buffer, std::cin);
std::cout << "Here's the buffer: " << buffer;
return 0;
}
You can, of course, use stream extraction like std::cin >> buffer
, but doing so will read only a single "word" of input, not a whole line like your previous code tried to do.
Upvotes: 1