Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Domandine C++

  1. #1

    Domandine C++

    Salve,
    avevo un paio di domande, sono agli inizi con il C++
    1) Come faccio ad inserire una stringa (una frase) in una variabile? Che tipo di variabile dovrebbe essere? E' possibile farlo? Serve includere qualche altra libreria?
    2) Se volessi stampare una cosa del tipo lang=ita (dato dall'utente). Se voglio stampare FILE.EXT dove ext è il valore della variabile ext (cioè ita, file.ita) come posso fare? Mi servirebbe per sapere diciamo quale file lingua includere? Tipo in php potevo fare FILE.$ext
    3) Cosa è un linker? Come funziona?
    4) Vedo che molti programmi hanno vari files nn un solo sorgente ma piu sorgenti, però l'exe compilato è uno solo. Vorrei sapere come si collegano fra loro in modo che tutti vengano considerati e compilati. Come si utilizza questo sistema?
    5)Avete una buona guida c++ e sopratutto, avete una buona guida su Visual C++ express 2008 xkè non ho ancora capito bene come funziona il programma in se!

    Vi ringrazio in anticipo.
    Bye

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Proviamoci.
    1) Come faccio ad inserire una stringa (una frase) in una variabile? Che tipo di variabile dovrebbe essere? E' possibile farlo? Serve includere qualche altra libreria?
    Le stringhe in C non sono built in: avrai quindi bisogno di un array di caratteri del tipo char. Quindi sarà
    codice:
    char frase[] = "Ciao a tutti sono gigino e faccio i gelati";
    Oddio che frase...
    Per poter poi manipolare le stringhe (saperne la lunghezza, tokens, copia ecc ecc...) dovrai usare la libreria cstring (ricordati del namespace std).
    Comunque, il C++ offre, includendo string, appunto la classe string che da ottime funzionalità di manipolazione e gestione semplificata.

    2) Se volessi stampare una cosa del tipo lang=ita (dato dall'utente). Se voglio stampare FILE.EXT dove ext è il valore della variabile ext (cioè ita, file.ita) come posso fare? Mi servirebbe per sapere diciamo quale file lingua includere? Tipo in php potevo fare FILE.$ext
    Dovrai fare una cosa del genere usando la manipolazione delle stringhe. In C++, rapidamente, potresti fare
    codice:
    //Supponiamo che in lang ci sia il suffisso.
    char *lang = "ITA"; // eng o quel che ti pare
    string file = "lang.";
    file += lang;
    
    //file = "lang.ita"
    Non l'ho testato, ma a grandi linee è così.
    3) Cosa è un linker? Come funziona?
    Il linker è un programma che unisce vari moduli software (vari file .cpp) in un'unico file eseguibile.
    Il compilatore,inizialmente, produce codice oggetto (codice contenente sia l'assembly che codice per il linker) rimanendo dipendenze irrisolte per il linker. Se questo riesce a risolverle, il programma viene compilato e i file intermedi vengono eliminati, dandoti l'exe finale.
    Altrimenti, avrai un'errore.
    4) Vedo che molti programmi hanno vari files nn un solo sorgente ma piu sorgenti, però l'exe compilato è uno solo. Vorrei sapere come si collegano fra loro in modo che tutti vengano considerati e compilati. Come si utilizza questo sistema?
    Come sopra.

    5)Avete una buona guida c++ e sopratutto, avete una buona guida su Visual C++ express 2008 xkè non ho ancora capito bene come funziona il programma in se!
    Comincia ad aprire il portafogli perchè, a mio parere, solo con un buon libro si possono avere conoscenze necessarie.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  3. #3
    Bhe volendo il portafogli si può aprire, che libro mi consigli?
    Per quanto riguarda la stringa, quindi per una frase o una parola per forza un arrei di tipo char? Perchè una volta vidi une sempio mi pare del tipo string frase="Ciao ragazzi", pensavo che potevo mettere la frase in un tipo di variabile.
    Se con cin poi voglio che la frase la scriva l'utente faccio cin>>frase[];?

    Ah poi vi volevo chiedere riguardo le operazioni matematiche. Se faccio un float + int si può fare direttamente? E se volessi solo la parte intera posso fare int=float+int o mi darebbe errore?

    Grazie ^_^

  4. #4
    Originariamente inviato da apocaliv
    Per quanto riguarda la stringa, quindi per una frase o una parola per forza un arrei di tipo char?
    Fondamentalmente sì, ma esistono anche classi che ti consentono di gestire più facilmente le stringhe.
    Perchè una volta vidi une sempio mi pare del tipo string frase="Ciao ragazzi", pensavo che potevo mettere la frase in un tipo di variabile.
    Sì, esiste la classe std::string (per usarla devi includere l'header <string>); il suo uso è molto più intuitivo rispetto agli array di char e consente di risparmiare tempo e fatica in numerose operazioni.
    Se con cin poi voglio che la frase la scriva l'utente faccio cin>>frase[];?
    Dipende, se la stringa da acquisire è senza spazi e frase è un array di char puoi fare
    codice:
    cin>>frase;
    se invece vuoi acquisire un'intera linea userai
    codice:
    cin.getline(frase,sizeof(frase));
    ; se infine frase non è un array di char ma un oggetto string per acquisire una riga userai
    codice:
    getline(cin,frase);
    .
    Ah poi vi volevo chiedere riguardo le operazioni matematiche. Se faccio un float + int si può fare direttamente? E se volessi solo la parte intera posso fare int=float+int o mi darebbe errore?
    Si possono fare entrambe le operazioni.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Grazie mille,
    qualche guida o buon libro da consigliarmi? Un libro che parte dalle basi e arriva ad un livello abbastanza avanzato (e non solo il do, while, puntatori e classi, senza poi spiegare nessuna funzione o libreria) e possibilmente un pò aggiornato!
    Bye

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296

    Moderazione

    Le risposte alle domande che hai posto si trovano in qualsiasi documentazione di base, manuale o tutorial, online e offline.

    Una discussione non dovrebbe essere un luogo in cui si chiede di tutto e di più, o si ottiene un corso in diretta relativo ad un linguaggio o ad un ambiente di sviluppo, bensì dovrebbe essere dedicata alla risoluzione di un problema specifico nell'uso di questo linguaggio.

    Oltretutto, qui si sono affrontate svariate questioni, spaziando su più argomenti, anche non strettamente in relazione tra loro.

    Suggerisco quindi di riservare le discussioni future alla trattazione di un problema specifico, e a fare riferimento alle discussioni in rilievo per collegarsi a vari siti che trattano i fondamentali del linguaggio, o a un buon manuale, o ad una ricerca su questo forum.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.