Avatar billede rexon Nybegynder
23. august 2004 - 16:46 Der er 10 kommentarer og
1 løsning

Gem i tekst - dokument

Har lavet følgende program til den lokale skytteforening :P problemet er bare at jeg godt vil have at den gemmer resultatet i en tekstfil .. hvordan skal koden så se ud?

// Compyright RexOn aka. Mikelis..

#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;

int point = 200;
int svar;
int skud = 20;
int tier = 0;
int nier = 0;
int oter = 0;
int ude = 0;
int syver = 0;
int main()
{
while ( skud > 0 ){
system ("CLS");
cout << "Skyde Point vers. 1.3 (indendoers skydning)"<< endl;
cout << "Skriv hvor du har ramt (f.eks 10 eller 9 osv.) (" << skud << " skud tilbage) ("<< point << " point)" << endl;
cout << "Jeg har ramt:" << endl;
cin >> svar;

if (svar == 10)
{
cout << "- 0 point" << endl;
tier = tier +1;
system ("PAUSE");
}

else if (svar == 9 )
{
cout << "-1 point" << endl;
nier = nier +1;
point = point -1;
system ("PAUSE");
}

else if ( svar == 8)
{
cout << "-2 pint" << endl;
oter = oter +1;
point = point -2;
system ("PAUSE");
}

else if ( svar == 7)
{
cout << "-3 pint" << endl;
ude = ude +1;
syver = syver +1;
point = point -2;
system ("PAUSE");
}

else 
{
cout << "-10 pint" << endl;
point = point -10;
system ("PAUSE");
}
skud = skud -1;




}
cout << "Dit resultat er: " << point << " points" << endl;
cout << "Du fik " << tier << " 10`ere "<< endl;
cout << nier << " 9`ere " << endl;
cout << oter << " 8`ere " << endl;
cout << syver<< " 7`ere " << endl;
cout << ude << " var ude" << endl;
system ("PAUSE");
return 0;
}
Avatar billede arne_v Ekspert
23. august 2004 - 16:51 #1
Hvis du laver en:

ofstream f("udfil.dat");

og så erstatter:

cout << ...;

med:

f << ...;

så skriver du til i stedetfor console output.

(du skan selvfølgelig også skrive til begge)
Avatar billede rexon Nybegynder
23. august 2004 - 17:42 #2
// Compyright RexOn aka. Mikelis..

#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;

int point = 200;
int svar;
int skud = 20;
int tier = 0;
int nier = 0;
int oter = 0;
int ude = 0;
int syver = 0;
int main()
{
while ( skud > 0 ){
system ("CLS");
cout << "Skyde Point vers. 1.3 (indendoers skydning)"<< endl;
cout << "Skriv hvor du har ramt (f.eks 10 eller 9 osv.) (" << skud << " skud tilbage) ("<< point << " point)" << endl;
cout << "Jeg har ramt:" << endl;
cin >> svar;

if (svar == 10)
{
cout << "- 0 point" << endl;
tier = tier +1;
system ("PAUSE");
}

else if (svar == 9 )
{
cout << "-1 point" << endl;
nier = nier +1;
point = point -1;
system ("PAUSE");
}

else if ( svar == 8)
{
cout << "-2 pint" << endl;
oter = oter +1;
point = point -2;
system ("PAUSE");
}

else if ( svar == 7)
{
cout << "-3 pint" << endl;
ude = ude +1;
syver = syver +1;
point = point -2;
system ("PAUSE");
}

else 
{
cout << "-10 pint" << endl;
point = point -10;
system ("PAUSE");
}
skud = skud -1;




}
cout << "Dit resultat er: " << point << " points" << endl;
cout << "Du fik " << tier << " <<10`ere "<< endl;
cout << nier << " <<9`ere " << endl;
cout << oter << " <<8`ere " << endl;
cout << syver<< " <<7`ere " << endl;
cout << ude << " <<var ude" << endl;

ofstream fo("resultat.txt"); {
fo << "Dit resultat er: " << point << " points" << endl;
fo << "Du fik " << tier << " <<10`ere "<< endl;
fo << nier << " <<9`ere " << endl;
fo << oter << " <<8`ere " << endl;
fo << syver<< " <<7`ere " << endl;
fo << ude << " <<var ude" << endl;
}


system ("PAUSE");
return 0;
}

// sådan ser min kode ud nu ... men der kommer fejl.. prQv selv!
Avatar billede arne_v Ekspert
23. august 2004 - 18:21 #3
Prøv og sæt en:

#include <fstream>

ind øverst.
Avatar billede rexon Nybegynder
23. august 2004 - 18:41 #4
tænkte jeg nok :) hvade prøver med #include <ofstream>
men thx for hjælpen :)
Avatar billede arne_v Ekspert
23. august 2004 - 18:51 #5
Både ofstream og ifstream er i fstream headeren (ifstream er til filer man læser fra).
Avatar billede arne_v Ekspert
23. august 2004 - 18:51 #6
OK at jeg ligger et svar nu ?
Avatar billede rexon Nybegynder
23. august 2004 - 19:49 #7
japs.. men der er lige et par ting til :) du skal nok få dine point!
1. hvordan laver man dividere tegn i c++
2. hvordan kan jeg få den til at lade være med at overskrive dokumentet hvergang?
Avatar billede arne_v Ekspert
23. august 2004 - 19:50 #8
divider er /
Avatar billede arne_v Ekspert
23. august 2004 - 19:51 #9
ofstream fo("resultat.txt", ios::app);

vil appende i.s.f. at overskrive
Avatar billede rexon Nybegynder
23. august 2004 - 19:52 #10
så kan jeg sq ik forlange mere for de 60 point :P
Avatar billede arne_v Ekspert
23. august 2004 - 19:53 #11
Vær opmærksom på at C++ (ligesom de fleste lignende programmerings sprog)
laver hel tals division på hel tal.

3.0/2.0 giver 1.5

men 3/2 giver 1
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