Avatar billede geek1011 Nybegynder
26. februar 2002 - 16:56 Der er 15 kommentarer

gem til fil

Hvordan gemmer man til en fil i C++?
Og hvordan indlæser man filen igen?

Programmet skal kunne køres i MS-DOS tilstand.
Avatar billede geek1011 Nybegynder
26. februar 2002 - 16:57 #1
ups, jeg glemte lige en sidste ting: Hvordan kopierer man en fil, og sletter en fil?
Avatar billede jpk Nybegynder
26. februar 2002 - 17:13 #2
int main(int argc, char* argv[])
{
//Open

  FILE *stream = fopen( fnbuf, "r" );
  char line[200];
  while( !feof( stream ) )
  {
        fgets( line, 200, stream );
        //do stuff with line
  }
  fclose( stream );

//Save   
  FILE *stream = fopen( fnbuf, "w+" );
//MSDN :
//"w+" Opens an empty file for both reading and writing. If the given file exists, its contents are destroyed
  //int i = Antal Strenge
  //while (i)
  {
    //char *p = &Strneg nummer i
    fputs(p, stream);
  }
  fclose( stream );
   
    return 0;
}
Avatar billede jpk Nybegynder
26. februar 2002 - 17:38 #3
Du kan bruge MoveFile og DeleteFile
Avatar billede jpk Nybegynder
26. februar 2002 - 17:40 #4
Nå ja, og så selvfølgelig CopyFile...
Avatar billede geek1011 Nybegynder
27. februar 2002 - 11:32 #5
Det ser noget uoverskueligt ud..
Kan du ikke lave et eksempel til mig, hvor jeg kan bruge det her:

#include <iostream.h>

void main()
{  EnString MinStringVariable;

  cin>>EnString;
  //Kode til at gemme til filen Fil.fil
  //Kode til at åbne filen Fil.fil

}
Avatar billede kamikaze Nybegynder
28. februar 2002 - 15:48 #6
void main()
{
  char* MinTekst;
  cin >> MinTekst;
  FILE* Fil;
  Fil = fopen("c:/MinFil", "w+b");
  fputs(MinTekst, Fil);
  fclose(Fil);
}
Avatar billede kamikaze Nybegynder
28. februar 2002 - 15:52 #7
Sorry, lige en rettelse:

#include <stdio.h>
#include <iostream.h>

void main()
{
  char MinTekst[200];
  cin >> MinTekst;
  FILE* Fil;
  Fil = fopen("c:/Fil.fil", "w+b");
  fputs(MinTekst, Fil);
  fclose(Fil);
}
Avatar billede kamikaze Nybegynder
28. februar 2002 - 15:54 #8
Og for at læse det igen:

#include <stdio.h>
#include <iostream.h>

void main()
{
  char MinTekst[200];
  FILE* Fil;
  Fil = fopen("c:/Fil.fil", "r+b");
  fgets(MinTekst, 200, Fil);
  cout << MinTekst << endl;
  fclose(Fil);
}
Avatar billede kamikaze Nybegynder
01. marts 2002 - 12:23 #9
I det første eks. skriver du til fil, og i det andet eks. læser du fra den samme fil.
Avatar billede tomasolsen Nybegynder
02. marts 2002 - 18:14 #10
Jeg tror gerne han vil vide hvordan man gør det med C++... Ikke med C's FILE struktur...
Avatar billede tomasolsen Nybegynder
02. marts 2002 - 18:28 #11
#include <iostream.h>
#include <fstream.h>

void main()
{
char minstreng[256];
cin >> minstreng;

// Gem strengen i fil
ofstream fil1;
fil1.open( "fil.txt" );
if ( !fil1 ) // Fejl ved åbning
  return;
fil1 << minstreng;
fil1.close();

// Slte inholdet af 'minstreng'
strcpy( minstreng, "" );

ifstrem fil2;
fil2.open( "fil.txt" );
if ( !fil2 ) // Kan ikke åbne fil
  return;
fil2 >> minstreng;
fil2.close();
cout << "Minstreng: " << minstreng;
}
Avatar billede kamikaze Nybegynder
02. marts 2002 - 22:46 #12
tomasolsen >> det kan godt være du har ret... :-)
Avatar billede jakoba Nybegynder
06. marts 2002 - 10:36 #13
tomasolsen >> kan det virkelig passe der ikke er nogen "r", "w", "a" eller lignende parameter i file.open kaldet når man åbner en fil i c++?
Om det er read eller write gør en masse forskel for hvilke rettigheder og aflåsninger der skal requestes i operativsystemet.

mvh JakobA
Avatar billede jpk Nybegynder
06. marts 2002 - 10:54 #14
Man kan godt vælge hvilken locking der skal være:

basic_filebuf *open(const char *s, ios_base::openmode mode);
The member function endeavors to open the file with file name s, by calling fopen(s, strmode). Here strmode is determined from mode & ~(ate & | binary):

ios_base::in becomes "r" (open existing file for reading).
ios_base::out or
ios_base::out | ios_base::trunc becomes "w" (truncate existing file or create for writing).
ios_base::out | app becomes "a" (open existing file for appending all writes).
ios_base::in | ios_base::out becomes "r+" (open existing file for reading and writing).
ios_base::in | ios_base::out | ios_base::trunc becomes "w+" (truncate existing file or create for reading and writing).
ios_base::in | ios_base::out | ios_base::app becomes "a+" (open existing file for reading and for appending all writes).
Avatar billede tomasolsen Nybegynder
06. marts 2002 - 15:00 #15
I eksemplet jeg skrev, skal man huske at lægge mærke til at "ifstream" bliver brugt ved indlæsning, "ofstream" til udskrivning... =)
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

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