Jak za pomoca cina wczytac do...

0

Mam pytanie: jak mozna za pomoca cina wczytac do char tab[100] tak by mozna bylo drugi raz wpisac, czyli jak oproznic bufor?

0
memset(tab,NULL,strlen(tab)+1);
0

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

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.

0

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;

0

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;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1