#include<iostream.h>
#include<conio.h>
class String
{
char str[100];
public:
void input()
{
cout<<"Enter string :";
cin>>str;
}
void display()
{
cout<<str;
}
};
int main()
{
String s;
s.input();
s.display();
return 0;
}
I am working in Turbo C++ 4.5. The code is running fine but its not giving the desired output for e.g if i give input as "steve hawking" only "steve" is being displayed. Can anyone please help?
Using >>
on a stream reads one word at a time. To read a whole line into a char
array:
cin.getline(str, sizeof str);
Of course, once you've learnt how to implement a string, you should use std::string
and read it as
getline(cin, str);
It would also be a very good idea to get a compiler from this century; yours is over 15 years old, and C++ has changed significantly since then. Visual Studio Express is a good choice if you want a free compiler for Windows; other compilers are available.
cin>>str;
This only reads in the next token. In C++ iostreams, tokens are separated by whitespace, so you get the first word.
You probably want getline, which reads an entire line into a string:
getline(cin, str);
You can use :
cin.read( str, sizeof(str) );
But, this will fill up the buffer. Instead you should use cin.getLine() as MikeSeymour suggested
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