[ marip @ 02.12.2011. 08:40 ] @
Zdravo,
Da li neko moze da mi pomogne i kaze sta ne valja u sledecem kodu. Problem je sto se unos stringa s1 preskace.

Zadatak radi kada se broj godina unosi na kraju. U cemu je problem?(U pitanju je c++, CodeBlocks, a isto se ponasa

i u Devcpp). Hvala unapred!


#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
main()
{
char s1[100], s2[100];
int i;
cout<<"unesi broj godina";
cin>>i;
cout<<"Unesi ime: "<<endl;
gets(s1);
cout<<"Unesi prezime: "<<endl;
gets(s2);
cout<<"unesi broj godina";
cin>>i;
}
[ X Files @ 02.12.2011. 10:10 ] @
Pogledaj ovde:
http://www.elitesecurity.org/p2183856
http://www.elitesecurity.org/p946134
...itd.

Verovatno treba da dodaš fflush(stdin); odmah posle cin>>i;.
[ vatri @ 02.12.2011. 13:47 ] @
Meni ovo izbaci gresku:

Code:


g++ t.cpp -o t
/tmp/ccCOZn3s.o: In function `main':
t.cpp:(.text+0x6f): warning: the `gets' function is dangerous and should not be used.



Ako upisem cin >> s1 umjesto gets(s1) - radi.
[ itf @ 02.12.2011. 15:10 ] @
Probaj i cin.getline ...
[ marip @ 18.12.2011. 07:13 ] @
Hvala svima na odgovorima i pomoci.
fflush(stdin); je resio moje probleme!
Pozdrav!