PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : daten in eine datei schreiben..



tuxipuxi
05-10-2002, 17:30
hi,

ich versuche gerade ein ganz simples programm zu schreiben,was telefonnummern speichert.
ein und ausgabe klappt auch(natuerlich anfaengerstyle,net lachen :)),jetzt will ich das so machen,das er die liste auch speichert.
hab zwar in ner c-referenz was gelesen,hat aber nicht geholfen.
hier mal der quellcode:

"
#include <iostream>
#include <string>
#include <vector>

using namespace std;
#include <stdio.h>

struct person
{ long int number;
string name;
};
int g = 200;
int c = -1;
vector<person> tellist(g);
typedef vector<person>::iterator VI;

void addcontact(int c)
{
cout<<"Namen eingeben :\n";
cin>>tellist[0+c].name;
cout<<"Nummer eingeben :\n";
cin>>tellist[0+c].number;
};

void showlist()
{
for(int i=0;i<(c+1);i++)
{
cout<<tellist[i].name<<" , "<<tellist[i].number<<"\n";
};
};

void savelist()
{
FILE *list = fopen("/home/lane/C++/telbuch/telbuch/tellist","w");
fputc(tellist[c].number,list);
};

int main(int argc, char** argv)
{
char choice;

while(choice!=5)
{
cout<<"----------Telefonbuch----------\n";
cout<<"1. Kontakt hinzufuegen\n";
cout<<"2. Liste ausgeben\n";
cout<<"3. Liste abspeichern\n";
cout<<"4. Kontakt loeschen\n";
cout<<"9. Beenden\n";
cin>>choice;

switch(choice)
{
case '1':
c++;
addcontact(c);
break;
case '2':
showlist();
break;
case '3':
savelist();
break;
case '9':
return 0;
};
};
};
"

brauche also vor allem hilfe bei der funktion savelist().
wenn ihr mir tipps geben koennt wie ich meinen chaotischen krams aufraeume...sagt es bitte :).

ciao lane

tuxipuxi
05-10-2002, 18:02
ok,schreiben hat sich erledigt.
jetzt muss ich noch wissen wie ich das mit einer anderen funktion wieder in den vector schreiben kann,wenn ich das programm neu starte?
meine savelist funktion:

void savelist()
{
ofstream out("/home/lane/C++/telbuch/telbuch/tellist");
for(int i=0;i<(c+1);i++)
{
out<<tellist[i].name<<endl;
out<<tellist[i].number<<endl;
};
};

anda_skoa
05-10-2002, 18:39
Das geht inetwa so:



#include <sstream>

ifstream instream("dateiname");
vector<person> pvec;
while (instream)
{
string line;
person p;

getline(instream, line);
p.name = line;

getline(instream, line);
stringstream strtream(line);
strtream >> p.number;
pvec.push_back(p);
}


Ciao,
_

tuxipuxi
06-10-2002, 09:16
supi,das funzt....was genau ist denn stringstream?

axeljaeger
06-10-2002, 11:10
Ein stringstream ist ein stream, der Daten nicht in eine Datei, auch nicht in die Standartausgabe, sondern in einen string reinschreibt

anda_skoa
06-10-2002, 12:35
Original geschrieben von axeljaeger
Ein stringstream ist ein stream, der Daten nicht in eine Datei, auch nicht in die Standartausgabe, sondern in einen string reinschreibt
...oder aus einem string liest.

Ciao,
_