Avatar billede nexus-6 Nybegynder
07. august 2002 - 15:42 Der er 8 kommentarer og
1 løsning

Udskriver ikke ??

Kan nogen fortælle mig hvorfor mit 'program' ikke udskriver hvad jeg indtaster samt det øvrige 'eksempel.txt' indeholder ??
På forhånd tak.

#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#include <string.h>

int main () {
  fstream testfil ("eksempel.txt", ios::out | ios::in | ios::app);
  char buffer[256];
  cout << "Indtast venligst noget :" << endl;
  cin.getline (buffer,256);
 
  if (! testfil.is_open()){
      cout << "Fejl: kunne ikke aabne filen"; exit (1);
    }else{
    testfil << buffer << "\n";
  }
  void clear();
  while (! testfil.eof() )
  {
    testfil.getline (buffer,100);
    cout << buffer << endl;
  }
  return 0;
}
Avatar billede medions Nybegynder
07. august 2002 - 15:44 #1
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#include <string.h>

int main () {
  fstream testfil ("eksempel.txt", ios::out | ios::in | ios::app);
  char buffer[256];
  cout << "Indtast venligst noget :" << endl;
  cin.getline (buffer,256);
 
  if (! testfil.is_open()){
      cout << "Fejl: kunne ikke aabne filen"; exit (1);
    }else{
    cout << testfil << buffer << "\n";
  }
  void clear();
  while (! testfil.eof() )
  {
    testfil.getline (buffer,100);
    cout << buffer << endl;
  }
  return 0;
}

Hmm, prøv lige med denne!
//>Rune
Avatar billede nexus-6 Nybegynder
07. august 2002 - 15:54 #2
Så skriver den '00001' foran det jeg har indtastet hvor efter den så udskriver resten af filen. Men jeg kan bare ikke forstå at:
while (! testfil.eof() )
{
  testfil.getline (buffer,100);
  cout << buffer << endl;
}
ikke udskriver filen. Kan det være pga. at den er nået til bunds af filen ??
Avatar billede chries Nybegynder
07. august 2002 - 15:55 #3
ansi standarden siger vist:
int main(int argc, char* argv[])
{
    return 0;
}

men de fleste compiler tager "void main( void )" fint.
(nogle giver en warning om det er imod standarden
Avatar billede chries Nybegynder
07. august 2002 - 15:55 #4
ups , forkert vindue :-)
Avatar billede medions Nybegynder
07. august 2002 - 15:56 #5
Nej, for du er jo netop ikke nået tilbunds af filen.. når du skriver:
Imens testfil ikke er nået til buns udskriv da filen... men prøv lige med dette:

while (not testfil.eof() )
{
  testfil.getline (buffer,100);
  cout << buffer << endl;
}
//>Rune
Avatar billede nexus-6 Nybegynder
07. august 2002 - 16:05 #6
Den godtager ikke 'not'.
Men hvis den ikke er nået tilbunds så fatter jeg ikke hvorfor den ikke udskriver.
Så vidt jeg ved giver 'eof()' true når den er tilbunds i filen.
Avatar billede nexus-6 Nybegynder
07. august 2002 - 16:43 #7
Har fundet ud af det.
Den var nået til bunden af filen. Kunne sætte den til starten af filen med en 'testfil.seekg(0)'
Avatar billede medions Nybegynder
07. august 2002 - 16:44 #8
fair nok ;-)

//>Rune
Avatar billede soepro Nybegynder
13. august 2002 - 12:16 #9
Præcis - Skriv til filen flytter jo netop fil-pointeren til slut af det du netop har skrevet. Inden dit while(not testfil.eof()) skal du derfor - som du selv fandt ud af - lave en testfil.seekg(0);
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