Avatar billede LiveAdmin_DK Nybegynder
05. april 2011 - 14:16 Der er 7 kommentarer og
1 løsning

Bruge fil som variabel i C++ ?

Jeg har fået en god idé, til et lille program. Jeg skriver det i C++, da det skal kunne køre på både linux og windows maskiner (måske Mac også med tiden..)

Det er et lille beregner program, som skal gemme den beregnede værdi, så den kan bruges næste gang, programmet køres..
Jeg tænker, det vil gøres bedst, hvis man gemmer den beregnede værdi i en fil... Tiladelserne til filen skal være som følger: 755
så det kun er programmet der kan lave ændringer i filen.. (håber i forstår hvad jeg mener...)

Så det jeg har brug for hjælp til er:

1. Hvordan kan man kode sit program til at gemme den beregnede værdi i et tekst fil eller lign.

2. Når programmet starter op igen skal den automatisk "hente" værdien i filen og sætte den ind i variabel så man kan arbejde videre på den. og så gemme den beregnede værdi i filen igen/overskrive den gamle værdi når man er "færdi"

3. Jeg vil gerne kunne trække en værdi fra den værdi der er i filen
og skrive et lille notat til hvad det er blevet brugt til fx:
Samlet værdi = 5000
udbetal(indtast) = fx. 100
Brugt til: Betaling af usb pen...

Notatet og det "beløb" der er brugt skal så gemmes i en anden fil som også har tilladelserne 755



Der er self en del andre funktioner men deler det lige op :) og
skal siges at det bliver som udgangspunkt tekstbaseret uden GUI....


Mvh.

Simon Riis Olesen
Avatar billede bertelbrander Praktikant
05. april 2011 - 18:55 #1
Du læser fra en fil ved at oprette et std::ifstream objekt, derpå kan du læse fra den som du læser fra cin. På samme måde skriver du til en fil ved at oprette et std::ofstream objekt og skriver til filen på samme måde som med cout.

C++ håndterer ikke rigtigt "tilladelser" så som 755, det giver vist heller ikke rigtigt mening på Windows.
Avatar billede LiveAdmin_DK Nybegynder
05. april 2011 - 19:16 #2
Ok tak - jeg kigger lige på det... det burde ikke være et problem hvis jeg skriver en variabel med cout? og hvad når jeg skal gemme indholdet af filen i en variabel så jeg kan arbejde videre på den?

hmm øv.. ville ellers gerne sikre mig at det kun var programmet der kunne foretage ændringer..
Avatar billede bertelbrander Praktikant
05. april 2011 - 19:41 #3
Det er vist ikke nogle enkle måder at sikre at det kun er programmet der kan ændre i filen. Du kan evt. sikre den med noget kryptering...

Et lille eksempel på læsning og skrivning til fil:
#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
  ifstream inFile("test.dat");
  int n = 0;
  inFile >> n;
  inFile.close();
  n++;
  cout << n << endl;
  ofstream outFile("test.dat");
  outFile << n;
  outFile.close();
}
Avatar billede arne_v Ekspert
09. april 2011 - 03:20 #4
chmod eksisterer baade paa Linux og Windows - forskellen er kun at paa Linux skal man include sys/stat.h mens man paa Windows skal inkludere io.h - 755 giver saa ikke mening paa Windows men chmod(fnm, S_IREAD | S_IWRITE) virker.
Avatar billede arne_v Ekspert
22. maj 2011 - 21:59 #5
simon?
Avatar billede LiveAdmin_DK Nybegynder
23. maj 2011 - 11:30 #6
Undskyld har haft en del at lave her på det sidste... kan du oprette det som svar så der kan uddeles point?
Avatar billede arne_v Ekspert
24. maj 2011 - 01:44 #7
jeg har vist ikke bidraget med meget
Avatar billede LiveAdmin_DK Nybegynder
07. april 2012 - 18:20 #8
Søger ikke hjælp til dette længere
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