[ Igy17 @ 29.12.2006. 13:02 ] @
Pozdrav ovo je dio mog programa u kojem se pojavio problem.
Zanima me kako da natjeram c++ da me upita za ime file-a u koji zelim spremiti
i da onda spremi u taj file.

cout<<"Spremanje podataka."<<endl;
cout<<"Unesite naziv file-a u koji zelite spremiti: ";
string ime_dat;
cin.ignore(100, '\n');
getline(cin,ime_dat);
cout<<endl;
cout<<"Unos teksta: "<<endl;
string tekst;
ofstream izlaz(ime_dat.txt);
cin.ignore(100, '\n');
getline(cin,tekst);
izlaz<<tekst;
cout<<endl;
cout<<"Spremanje je gotovo."<<endl;
izlaz.close();

Moze mi netko pomoci?
[ DjoleReject @ 29.12.2006. 17:31 ] @
Code:
#include<iostream>
#include<fstream>
#include<sstream>
using namespace std;
int main(){

    cout<<"Unesi ime fajla: ";
    string s;
    cin>>s;
    ofstream upis;
    upis.open(s.c_str());
    cout<<"Unesi tekst u fajl\n";
    string tekst;
    
    cin.ignore();
    getline(cin,tekst);    
    
    upis<<tekst;
    upis.close();
    return 0;
}


Ovo radi, samo ne znam da li si zeleo da uneses samo jedan red u fajl. Ukoliko ih zelis vise, prepravke su minimalne.
[ Igy17 @ 29.12.2006. 20:53 ] @
Hvala ti. Imam jos jedan problem.
Imam file npr. "file.txt".
U njemu se nalaze dva reda teksta.
Kod ucitavanja mi se ispise samo prvi red teksta, a drugi ne.

string ispis1;
ifstream ulaz1("file.txt");/* ovdje su spremljena 2 imena fileova koje imam u bazi
getline(ulaz1,ispis1);
cout<<"Popis file-ova u bazi: "<<endl;
cout<<ispis1; /* ispise se samo prvi red, a drugi ne
cout<<endl<<endl;
[ DjoleReject @ 31.12.2006. 00:03 ] @
getline() kao sto mu i ime kaze uzima jednu liniju.

tebi treba nesto kao while petlja kojom uzimas linije dok nije eof, i sve ih smestas u neki string (ako si to zamislio).
[ Igy17 @ 02.01.2007. 15:21 ] @
Imam file u kojem je spremljena lozinka.
File se ucita kad napisem user name.
.
.
.
char user_name[20];
int password;
cout<<"\t\t\t ..... L O G I N ....."<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;
cout<<"USER NAME: ";
cin>>user_name;
char logiz[20];
ifstream log1(user_name);
log1>>logiz;
log1.close();
cout<<endl<<endl;
cout<<"PASSWORD: ";
cin>>password;

if(password==logiz)
{
cout<<endl<<endl;
cout<<"Logiranje je uspjesno!"<<endl;
.
.
.

}

U cemu je problem?

[ SuPeR_MaSteR @ 02.01.2007. 19:01 ] @
Greska je ovde:
Code:
if(password==logiz)

Ne mozes ih ovako porediti. Koristi stringove.
Znaci:
Code:

#include<string>
...
string logiz,pass;
cin >> logiz >> pass;
if (logiz == pass)
...


Ili ako bas moras, radi sa C stringovima:
Code:

#include<cstring>
char logiz[20],pass[20];
cin >> logiz >> pass;
if (strcmp(logiz,pass) == 0) // Ako im je leksikografski zbir znakova jednak
...