Kellene egy kis help! C\\\\\\\\C++
2003-07-02T23:09:31+02:00
2003-09-19T23:24:11+02:00
2022-07-27T17:12:41+02:00
  • Köszi!
    Mutasd a teljes hozzászólást!
  • na jo
    nev csak 10 karakter: a typdef struct-ban a char nev[30]-at atirod [10]-re,figyelj arra hogy ha tiz karaktert akarsz max tarolni akkor kell +1 a nullnak,tehat [11].

    ha csak pontosan 10 karaktert akarsz beolvasni akkor ne a gets -t hasznald hanem irj sajat beolvas fuggveny-t ami max tiz karakter olvas be(karakterenkent olvasol be,tehat ne felejtsd el a \\\\\\\\0 -t hozzafuzni)

    Mutasd a teljes hozzászólást!
  • Hali!

    A Borlandnak van C++ fordítója (5.2?). Nem üzleti fejlesztésre ingyenes. Keress rá a Borlandnál, meg fogod találni. Parancssoros.
    Mutasd a teljes hozzászólást!
  • Naaaaa!
    Valakiiiii...

    Help kelll

    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Találtam egy forráskódot a Prog.HU-n!

    #include <stdio.h>
    #include <conio.h>
    #include <ctype.h>
    #include <string.h>

    #define FILENAME "tk.dat"

    typedef struct {
    char nev[30];
    char szam[15];
    char cim[30];
    char reserved;
    } ADAT;


    FILE *datfile;

    void bill();

    void main(void)
    {
    char c;
    void uj ();
    long keres ();
    void modosit ();
    int openfile(char *filename);

    if (openfile(FILENAME))
    {
    do
    {
    printf("Fomenu:\\\\\\\\n");
    printf(
    "\\\\\\\\n1 - uj szam"
    "\\\\\\\\n3 - kereses"
    "\\\\\\\\n4 - modositas"
    "\\\\\\\\n0 - kilepes");
    switch(c=getch())
    {
    case '1' : uj(); break;
    case '3' : keres(); break;
    case '4' : modosit(); break;
    case '0' : printf("\\\\\\\\n\\\\\\\\n C S A !"); break;
    } // switch
    fflush(datfile);
    } while(c!='0');
    fclose(datfile);
    }
    } // main

    int openfile(char *filename)
    {
    if ((datfile=fopen(filename,"r+"))==NULL)
    {
    printf("Az adatfile nem letzik, letrehozok egy masikat...");
    bill();
    if ((datfile=fopen(filename,"w"))==NULL)
    {
    printf("Nem tudom letrehozni az adatfile-t (lehet hogy CD-rol inditottal)");
    return(0);
    }
    fclose(datfile);
    datfile=fopen(filename,"r+");
    }
    return(1);
    }

    void uj()
    {
    ADAT rek;

    fseek(datfile,0,SEEK_END);
    do
    {
    printf("Kerem az adatokat\\\\\\\\n\\\\\\\\n");
    printf("Nev : ");
    fflush(stdin);
    gets(rek.nev);
    printf("Telefonszam : ");
    fflush(stdin);
    gets(rek.szam);
    printf("Lakcim : ");
    fflush(stdin);
    gets(rek.cim);
    rek.reserved=0;
    fwrite(&rek, sizeof(ADAT), 1, datfile);
    printf("\\\\\\\\n\\\\\\\\nVan meg adat? (i/n) ");
    } while(tolower(getch())!='n');
    } // uj


    long keres()
    {
    ADAT rek;
    int nincs;
    long i;
    char string[30];

    printf("Kerem a nevet! ");
    fflush(stdin);
    gets(string);
    nincs=1;

    fseek(datfile,0,SEEK_SET);
    fread(&rek,sizeof(ADAT),1,datfile);
    for(i=0;!feof(datfile) && nincs;i++)
    {
    if(strcmp(string,rek.nev)==0)
    {
    printf("Nev: %s\\\\\\\\n",rek.nev);
    printf("Telefonszam: %s\\\\\\\\n",rek.szam);
    printf("Lakcim: %s\\\\\\\\n",rek.cim);
    nincs=0;
    } // if
    fread(&rek,sizeof(ADAT),1,datfile);
    } // for
    if(nincs)
    {
    printf("\\\\\\\\n Ilyen nevet nem talatam.");
    bill();
    return(-1);
    }
    bill();
    return(i-1);
    } // kereses

    void modosit()
    {
    ADAT rek;
    long poz;

    fflush(stdin);
    if ((poz=keres())!=-1)
    {
    poz*=sizeof(ADAT);
    printf("Kerem az uj nevet:\\\\\\\\n");
    fflush(stdin);
    gets(rek.nev);
    printf("Kerem az uj szamot:\\\\\\\\n");
    fflush(stdin);
    gets(rek.szam);
    printf("Kerem az uj cimet:\\\\\\\\n");
    fflush(stdin);
    gets(rek.cim);
    rek.reserved=0;
    fseek(datfile, poz, SEEK_SET);
    fwrite(&rek, sizeof(ADAT), 1, datfile);
    printf("modositas megtortent");
    bill();
    }
    } // modositas

    void bill()
    {
    printf("nyomj meg egy gombot....");
    getch();
    } // bill

    Az lenne a kérdésem,hogy hogyan kell módosítanom a kódot ahhoz, hogy a név beírásánál,csak 10 karaktert tároljon a program? De 10 karakternél többet ne is lehezzen leütni!
    Nekem special nem név tárolására fog majd kelleni!

    Ja, nem tudja valaki, hogy hogyan müködik a password(); fügvény?

    Elöre is köszi a válaszokat!

    Max Pack
    Mutasd a teljes hozzászólást!
  • És még vagy ezer ilyet ki tudok tolni!
    Mutasd a teljes hozzászólást!
  • Hát Unbornchikken nem lehetsz Te annyira szerencsétlen ha egy ilyet lazán kitolsz magadból!!!
    Mutasd a teljes hozzászólást!
  • Sorry, hogy ideugattam ezt a sok szöveget, de ma jelentkeztem csak be ide, azt még marhára nem értek ehhez a fórumhoz, és azt hittem, hogy az uccsó hozzászóló az aki a hanglejátszás segítséget kérte...

    Min1, talán valakinek még hasznára lesz a cucc.

    Aki szerencsétlenkedett:

    unbornchikken
    Mutasd a teljes hozzászólást!
  • Annak, hogy Windows alatt zenélj ezer féle módja van. Pl.: MCI,DirecSund,DirectShow

    A legegyszerűbb a DirectShow, azzal ráadásul bármilyen Windows által ismert médiaformátumot le tudsz játszni (vidót vagy DVD-t is). A DirectShow COM-ra épül, de nem szükséges valami nagy COM profinak lenni a használatához.

    Előszőr is szükséged lesz a DS include file-jaira, amit pl. az MS honlapjáról tudsz letölteni. Javaslom, hogy az egész DX 8 v. 9 SDK-t vadászd le onnan, mert abban minden benne van, amire valaha is szükséged lehet.

    Azért leírok egy gyorstalpalót, hogy tudj min elindulni.

    #include <DShow.h> //ez a DS fő include-ja

    //INICIALIZÁLÁS:

    //COM
    CoInitialize(NULL);

    //Először is létre kell hozni egy GraphBuilder objektumot

    IGraphBuinder * Graph;

    CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&Graph);

    //Utána ebből le query-zzük azokat az interfészeket, amiket használni akarunk:

    IMediaControl * Control;
    IMediaPosition * Position;
    IVideoWindow * VidWin;
    IBasicAudio * BasicAudio;

    Graph->QueryInterface(IID_IMediaControl, (void **)&Control);
    Graph->QueryInterface(IID_IMediaPosition, (void **)&MediaPosition);
    Graph->QueryInterface(IID_IVideoWindow, (void **)&VidWin);
    Graph->QueryInterface(IID_IBasicAudio, (void **)&BasicAudio);
    //A VideoWindow-ra csak akkor lehet szükséged, ha videót játszol le, egyébként elhagyhatod

    //FÁLJ MEGNYITÁS:
    //A FileName egy (wchar_t *) típusú string (Unicode vagy Wide string)

    Graph->RenderFile(FileName, NULL);
    //Vagy:
    Graph->RenderFile(L"c:\\\\\\\\\\\\\\\\MP3\\\\\\\\\\\\\\\\Adam Freeland - Essential MIX.mp3", NULL);

    //LEJÁTSZÁS:
    Control->Run();
    //SZÜNET:
    Control->Pause();
    //MEGÁLLÍTÁS:
    Control->Stop();

    //POZÍCIONÁLÁS:
    double pos=5.5; //szekundumban kell megadni
    Position->put_CurrentPosition(pos);
    //POZÍCIÓ LEKÉRDEZÉS:
    double pos;
    Position->get_CurrentPosition(&pos);
    //HOSSZ LEKRÉRDEZÉS:
    double len;
    Position->get_Duration(&len);

    //HANGERŐ LEKÉRDEZÉS:
    //Ebben van egy kis rafkó, mert a DS logaritmikus hangerőskálát használ. Szóval én úgy oldottam meg, hogy egy 0-100 - ig terjedő LINEÁRIS skálában kapjam, ill. adjam meg az értéket.

    long along;
    BasicAudio->get_Volume(&along);
    along=round(pow(10.0,(2.0*double(along+10000))/10000.0)); // ez a sor transzformálja a függvényt lineárissá

    //HANGERŐ ÁLLÍTÁS:
    //alongba kezdetben be kell tenni a kívánt hangerőt (0-100)
    along=volume ? (round((10000.0*log10(double(volume)))/2.0) - 10000) : -10000;
    BasicAudio->put_Volume(along);

    //OBJEKTUMOK MEGSZÜNTETÉSE:
    BasicAudio->Release();
    Control->Release();
    VidWin->Release(); // ha le query-zted egyáltalán
    Position->Release();
    Graph->Release();
    //COM
    CoUninitialize();

    Hát ezek voltak a legfontosabb dolgok. Ennyíből már össze tudsz dobni egy pofás medialejátszó objektumot. Az SDK-ban minden szépen, részletesen le van írva. Amúgy pofon egyszerű a DirectShow-s médialejátszás, mint láthatod. Ja a hibaellenőrzést ne felejtsd le. Általában minden COM rutin HRESULT értékkel tér vissza, ha ez S_OK, akkor nem volt hiba.

    Ha nem sikerül SDK-t szerezni, akkor szójjá', azt elküldöm egy emilben a DShow headereket, nem sok.

    Sok sikert!

    unbornchikken
    Mutasd a teljes hozzászólást!
  • Köszi...
    Mutasd a teljes hozzászólást!
  • Haljátok, tud valaki magyarnelvű tutorialt pythonhoz,free pascalhoz, vagy netán c++(mindegy melyik változatához).
    köszi!null
    Mutasd a teljes hozzászólást!
  • Hát azt nem is fogja De adnak a C++ Builder-hez is InstallShield-et, ami beleteszi a BDE-t is a telepítőcsomagba.
    Mutasd a teljes hozzászólást!
  • Köszönöm szépen! Mostmár csak azt szeretném kérdezni, hogy olyankor mit kell csinálni, ha a programom Borland Database Engine-t is használ? Azt nem fordítja bele az exe-be.
    Mutasd a teljes hozzászólást!
  • Egesz pontosan :
    Project Options -> Linker ful -> Use Dinamyc RTL checkbox-ot ki kell kapcsolni
    +
    Packaes ful -> Build with runtime packages checkbox ot is ki kell kapcsolni.

    Igy lesz egy jo nagy de stand-alone exe-d!
    Mutasd a teljes hozzászólást!
  • A Borland 5.5os C++ compiler letoltheto es hasznalhato ingyenesen !

    http://www.borland.com/products/downloads/download_cbuilder.html
    Mutasd a teljes hozzászólást!
  • Nekem is Project/Options rémlik.
    Mutasd a teljes hozzászólást!
  • Bocs ha hülyeséget modok, borlandot is ezer évvel ezelőtt láttam csak, konkrétan c++ buildert soha (ja mégis, egyszer messziről), de nincs valahol a projekt settingsbe valami dinamyc/static linking kapcsoló?
    Mutasd a teljes hozzászólást!
  • Hi! Meg tudná nekem valaki mondani, hogy Borland C++ Builder 4-ben hogy lehet úgy lefordítani a projektet, hogy az exe file-ba vagy egy projecthez tartozó file-ba belefordítsa az összes hozzá tartozó libraryt? Mert így ahogy nekem most van, csak a saját gépemen indul el a program, ha átküldöm valakinek, akkor neki kéri a sorban a dll, bpl, stb.. file-okat...
    Mutasd a teljes hozzászólást!
  • A Dev-C++ a gcc-t használja, ez az egyik legjobb C++ fordító. Mondjuk én az ilyen cout-os dolgokat nem sűrűn használtam, aránylag ritkán írok konzolos progikat C++-ban, ha mégis akkor printf.

    Ezzel együtt a

    #ifdef HAVE_CONFIG_H
    #include <config.h>
    #endif

    #include <iostream>
    #include <cstdlib>

    using namespace std;

    int main(int argc, char *argv[])
    {
    cout.write("alma\\\\\\\\n",5);
    return EXIT_SUCCESS;
    }

    programnak elvben futnia kell (legalábbis nálam Mandrake 9.1 alatt gcc 3.2.2-vel fut). Hogy konvertálja-e a \\\\\\\\n-t W$ formátumba azt nem tudom, de aki W$ alá fejleszt C++-na CGI alkalmazást az meg is érdemli
    Mutasd a teljes hozzászólást!
  • próbáltam a cout.write-ot,de a fordító hibaüzenetet ad arra.De ez valszeg a Dev C++ hibája.Használja még valaki a Dev C++-t?másnakis van baja vele?
    a cout.put()-ot próbáltam, azt le is fordította, de az eredmény ugyan az,mintha cout<< irtam volna.
    próbáltam ilyet is, hoyg cout.binary, meg mitoménmi, bár asse tudom ezek mire valók:)
    namindegy, azért kösz
    tud vki ajánlani egy egyszerű,de működő c++ fordítót...win2000 alá.nem vagyok túlzottan otthon a c++ témában...
    Mutasd a teljes hozzászólást!
  • igen. muxik. sotmitobb a referenciat szoktak ugy is hivni mint _alias_, tehat "fedonev/alnev". amugy a referencia megvalosithato konstans mutatokent is akar. tehat csak egy konnyites lenyegeben. meg fuggvenyparameterkent sokkal jobban/szebben lehet kezelni.
    Mutasd a teljes hozzászólást!
  • ja és asszem a referencia sem csak függvény paraméter lehet, de ezt még nem használtam, de ha jól tudom működik:

    int a;

    int &b=a; //ilyenkor a kezdőérték kötelező

    b lett a-nak egy alternatív neve
    Mutasd a teljes hozzászólást!
  • a (*struktura).elem nagyon ronda, ezért az elemet struktura->elem -ként hivatkozzuk, ha "strukura" egy struktúrára(objektumra) mutató pointer.

    hogy a mutató mi azt gondolom tudod. a referencia a cím szerinti paraméterátadás magasabb szintű megvalósítása. olyan mint pascalban a VAR

    procedure x(var y : integer)
    =
    void x(int &y)
    Mutasd a teljes hozzászólást!
  • Hali!
    Nekem is van egy "egyszerű" kérdésem:
    Kb fél éve tanulok c++-t, és kb 2 éve programozok általánosságba. Vki el tudná magyarázni mi a különbség a mutatók és referenciák között, és mire jó a '->' operátor?
    Mutasd a teljes hozzászólást!
  • Próbáltad a cout.write()-ot?
    Mutasd a teljes hozzászólást!
  • nekem is lenne egy kérdésem.
    c++ ban, windows2000 alatt cgi-zek.de az a bajom,hogy egy bináris fájlt akarok kiküldeni a standard outputra(cout<<) akkor a #10 es karakterből csinál #13#10-et, és ezt sehogysem tudom megszüntetni!ezt az átalakítást hogyan lehet kikapcsolni!?!??!
    Mutasd a teljes hozzászólást!
  • Valaki tudna nekem segíteni? Borland c++ builder 4-ben szeretném úgy lefordítani a programomat, hogy ne 80 helyről kelljen a hozzá tartozó dll-eket és a többi filet összekapargatni (ráadásul így más gépén nem is fog elindulni), hanem mondjuk belefordítana mindent ami kell az exe file-ba.
    Mutasd a teljes hozzászólást!
  • Köszi szépen. Mindenféle képpen kipróbálom:))))
    Valami ilyesmire gondoltam.
    Ezer hála....
    Mutasd a teljes hozzászólást!
  • Nem jó a UNIX-os less progi? Itt egy link egy futtatható binárisokat tartalmazó oldahoz, itt pedig egy forráscím.
    (Fel-le görgetést tudja, GNU GPL-es)
    Mutasd a teljes hozzászólást!
  • Ezek szerint standard file kezelés kell...
    Ennyiből nem tudom hogy mi lehet a hiba...
    Arra pl. figyelj hogy ha szöveges módban nyitod meg fájlt akkor ilyen hogy fseek() gyakorlatilag nem használható, ebbe már egyszer belefutottam ha jól emlékszem.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd