Avatar billede joggy Nybegynder
20. oktober 2003 - 22:43 Der er 11 kommentarer og
1 løsning

Gemme til fil.

Jeg søger nogen der kan hjælpe mig med, eller vise mig i et eksempel hvordan man i c++ skriver til en fil.. Hvis nu jeg har lavet nogle forskellige cin som jeg gemmer som variabler, og jeg så gerne vil kunne gemme de variabler i en fil, så jeg igen i programmet kan indlæse denne fil så de kommer frem igen. Det skal selvfølgelig kunne gøre igen og igen, uden den overskriver de ting jeg allerede har gemt i filen.

Håber der er nogen der kan give en nem forklaring på dette, eller kan lave et eksempel som jeg kan kigge lidt på :)
Avatar billede arne_v Ekspert
20. oktober 2003 - 22:56 #1
Simpelt eksempel:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
  int v;
  cout << "Enter number: ";
  cin >> v;
  ofstream f("test.dat", ios::app);
  f << v << endl;
  f.close();
  return 0;
}
Avatar billede arne_v Ekspert
20. oktober 2003 - 22:56 #2
ios::app gør at den appender i.s.f. at overskrive
Avatar billede joggy Nybegynder
20. oktober 2003 - 23:02 #3
Hvis jeg så vil loade det jeg har gemt i den fil, hvad gør jeg så? Og hvis det er flere variable.. Og nu bliver jeg endnu mere irriterende, hvis jeg nu vil lave en tabel over nogle ting.. Hvos jeg F.eks har 3 ting jeg gerne vil sætte ind i den tabel.. Hver gang jeg taster ind skal den gemme den selvfølgelig.. Og næste gang jeg så taster ind skal den gemme igen.. men jeg skal så kunne loade alle de gemte dataer ind i programmet igen, og sætter det ind i tabel, f.eks efter dato.
Avatar billede arne_v Ekspert
20. oktober 2003 - 23:17 #4
Noget a la:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
  cout << "Old numbers:" << endl;
  ifstream f1("test.dat");
  while(!f1.eof())
  {
      int v1;
      f1 >> v1;
      cout << v1 << endl;
  }
  int v2;
  cout << "Enter number: ";
  cin >> v2;
  ofstream f2("test.dat", ios::app);
  f2 << v2 << endl;
  f2.close();
  return 0;
}
Avatar billede arne_v Ekspert
20. oktober 2003 - 23:19 #5
Hm måske snarere:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
  cout << "Old numbers:" << endl;
  ifstream f1("test.dat");
  while(!f1.eof())
  {
      int v1;
      f1 >> v1;
      if(f1) cout << v1 << endl;
  }
  int v2;
  cout << "Enter number: ";
  cin >> v2;
  ofstream f2("test.dat", ios::app);
  f2 << v2 << endl;
  f2.close();
  return 0;
}
Avatar billede arne_v Ekspert
20. oktober 2003 - 23:20 #6
Og hvad mener du med en tabel ?

HTML tabel ? Database tabel ?
Avatar billede joggy Nybegynder
20. oktober 2003 - 23:31 #7
Nej ikke noget så fancy... Ville bare "tegne" den med noget ascii..

Prøver lige at forklarer nærmere.. Hvis jeg nu vil Indsætte en dato som første streng. Og jeg så vil indsætte f.eks min alder. Alt sammen skal så gemmes i den fil der.. Så lukker jeg programmet.. Så vil jeg igen kunne gemme noget ny data, altså de samme ting som ovenover.. Bare med andet indhold. Men jeg ville så lave en funktion der gjorde at den sætte de data der var gemt ind i den ascii tabel der som jeg lige havde tegnet :)

Kan godt være jeg er dårlig til at forklarer...
Avatar billede arne_v Ekspert
20. oktober 2003 - 23:38 #8
Jeg tror jeg forstår.
Avatar billede joggy Nybegynder
20. oktober 2003 - 23:42 #9
Hehe godt.. Og dit første eksempel virkede fint.. Fik den til at gemme og det hele.. :)
Avatar billede arne_v Ekspert
20. oktober 2003 - 23:43 #10
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
  cout << "-----------------" << endl;
  ifstream f1("test.dat");
  while(!f1.eof())
  {
      string date;
      int age;
      f1 >> date >> age;
      if(f1)
      {
        cout << "| " << date << " | " << age << " |" << endl;
        cout << "-----------------" << endl;
      }
  }
  string date;
  int age;
  cout << "Enter date as dd.mm.yy and age: ";
  cin >> date >> age;
  ofstream f2("test.dat", ios::app);
  f2 << date << " " << age << endl;
  f2.close();
  return 0;
}
Avatar billede arne_v Ekspert
20. oktober 2003 - 23:44 #11
Der skal nok rettes lidt til med formateringen.

Men der er ihvertfald noget at lege med !
Avatar billede joggy Nybegynder
20. oktober 2003 - 23:47 #12
Jamen det var jo bare helt perfekt.. Nu har jeg i hvertfald noget at arbejde videre med.. Mange tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester