Mam pytanie: jak mozna za pomoca cina wczytac do char tab[100] tak by mozna bylo drugi raz wpisac, czyli jak oproznic bufor?
memset(tab,NULL,strlen(tab)+1);
Widze ze nie do konca o to mi chodzilo. Mam kod jak ponizej, z tym, ze on nie dziala jak powinien.
int main(int argc, char* argv[])
{
cout<<"Podaj tekst do przeszukania"<<endl;
char tab[500];
cin>>tab;
cin.sync();
cout<<endl<<"Podaj slowo do znalezienia"<<endl;
char tab2[500];
cin>>tab2;
cout<<tab<<" "<<tab2<<endl;
system("pause");
return 0;
}
z gory dziekuje za pomoc :0
Poprawa: czesciowo dziala, z cin.sync() jest calkiem OK, tyle ze wczytuje do tablicy tylko pierwsze slowo, tzn. wczytuje do spacji.
Np.fajny kotek jest wczyta do tablicy znakow jako fajny.
cout<<"Podaj tekst do przeszukania"<<endl;
char tab[500];
gets(tab);
cout<<endl<<"Podaj slowo do znalezienia"<<endl;
char tab2[500];
cin>>tab2;
cout<<tab<<" "<<tab2<<endl;
dzieje sie tak dlatego ze cin standartow wczytuje do bialego znaku czyli spacji.
Na szczescie dla strumieni jest metoda getline(gdzie, ile, znak_konca_lini). definicja brana z pamieci wiec lepiej zobacz jak ona wyglada w siecie( np. na msdn.microsotf.com)
a to przykladowy kod
#include <iostream>
<b>using namespace</b> std;
<b>int </b>main(int argc, <b>char</b>* argv[])
{
cout<<"Podaj tekst do przeszukania"<<endl;
<b>char </b>tab[500];
//cin>>tab;
<u>cin.getline(tab,499);</u>
cin.sync();
cout<<endl<<"Podaj slowo do znalezienia"<<endl;
<b>char </b>tab2[500];
cin>>tab2;
cout<<tab<<" "<<tab2<<endl;
system("pause");
<b>return </b>0;
}