Avatar billede tigertool Nybegynder
16. juni 2004 - 23:12 Der er 8 kommentarer og
1 løsning

Filhåndtering i C++ ved hjælp af C++Builder 6

Jeg brugte følgende kode til at lave en consol applikation - dette er jeg nu ved at lave om til noget mere grafisk. Jeg brugte før denne kode:

#include <iostream.h>
#include <fstream>
#include <string>
#include <stdio.h>
  int main()
  {
    string passwd;
    cout << "Enter new password:" << endl;
    cin >> passwd;
    cout << "COM maked..." << endl;

    ofstream f("c:\\password.bat");
    f << passwd << endl;
    f.close();
    system("c:\\commaker.exe c:\\password.bat");
    system("pause");
    return 0;
  }

Jeg har nu det problem at min kode mht filhåndteringen ikke accepteres af C++Builder 6.

Hvordan åbner man en fil, smider en linje ind i denne - og til sidst lukker denne, hvis man bruger C++Builder 6?
Og hvordan eksekverer man en system-kommando?
Avatar billede arne_v Ekspert
16. juni 2004 - 23:14 #1
ofstream etc. skal også virke i C++ Builder hvis du husker:

#include <fstream>

system skal også virke i C++ Builder hvis du husker:

#include <cstdlib>
Avatar billede tigertool Nybegynder
16. juni 2004 - 23:17 #2
Får denne fejl:
[C++ Error] ComMakerUnit.cpp(21): E2094 'operator<<' not implemented in type 'ofstream' for arguments of type 'AnsiString'

Jeg har følgende i min header:

#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>

#include <iostream.h>
#include <fstream>
#include <cstdlib>
#include <string>
#include <stdio.h>
Avatar billede arne_v Ekspert
16. juni 2004 - 23:19 #3
Prøv og erstat:

f << xxx;

med:

f << xxx.c_str();
Avatar billede tigertool Nybegynder
16. juni 2004 - 23:22 #4
Min 'nye' kode ser sådan ud:

void __fastcall TForm1::KnapClick(TObject *Sender)
{
    ofstream f("c:\\password.bat");

    f << "test::" + Passwd->Text << endl;
    f.close();

    system("c:\\commaker c:\\password.bat");
}

Hvor 'Passwd' er en TEdit
Avatar billede arne_v Ekspert
16. juni 2004 - 23:24 #5
f << "test::" + Passwd->Text.c_str() << endl;
Avatar billede tigertool Nybegynder
16. juni 2004 - 23:24 #6
[C++ Error] ComMakerUnit.cpp(21): E2085 Invalid pointer addition
Avatar billede arne_v Ekspert
16. juni 2004 - 23:25 #7
f << "test::" << Passwd->Text.c_str() << endl;
Avatar billede tigertool Nybegynder
16. juni 2004 - 23:27 #8
Det hjalp.

Takker..

Husk et svar :)
Avatar billede arne_v Ekspert
16. juni 2004 - 23:28 #9
svar
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