Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Librerie c++

  1. #1

    Librerie c++

    Ciao a tutti,
    sono un neofita del c++ da riga di comando e mi manca qualche nozione di base. Se sto programmando in windows xp senza un IDE, ma con un semplice editor di testo, come dico al mio compilatore g++ dove andare a prendere le stdio.h e iostream.h (tanto per dirne un paio), senza dover specificare ogni volta tutto il path delle librerie?

    Grazie

    J.

  2. #2
    Normalmente ti basta

    codice:
    #include <stdio.h>
    se non ti va è abbastanza strano

    Puoi comunque usare -Ipath. Ad esempio, se hai il file test.h nella directory Test e il seguente sorgente:

    codice:
    #include <test.h>
    
    int main(){}
    puoi compilare con

    codice:
    g++ -ITest main.cpp -o main

  3. #3
    Per i file di inclusione (non librerie!) della libreria standard non è necessario specificare alcunché, dovrebbe bastare il semplice
    codice:
    #include <nomeheader
    Per inciso, non è <iostream.h>, ma <iostream>; <stdio.h>, inoltre, è un header C, in C++ devi includere <cstdio>.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Non capisco però perché quando compilo il seguente codice:

    #include <iostream>

    main()
    {
    cout << "Hello world!!!\n";
    }

    dalla directory del fil pr1.cpp con il comando

    g++ pr1.cpp -o pr1

    mi viene restituito il seguente errore:

    iostream: no such file or directory

    però la libreria c'è. Devo mettere qualche percorso in path?

  5. #5
    Probabilmente c'è qualche problema di configurazione del compilatore; prova a reinstallarlo.

    Comunque, se vuoi usare cout senza premettere sempre std:: devi specificare dopo gli include
    codice:
    using namespace std;
    .
    Non so che libro tu stia seguendo, ma se propone <iostream.h> e non usa using namespace std; ti consiglio di prenderne uno più recente.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    magari iniziamo a scrivere un codice più corretto
    quoto miitaly devi mettere using namespace std;
    codice:


    #include "stdafx.h"
    #include <iostream>
    using namespace std;
    int main()
    {
    cout << "Hello world!!!\n";
    system("PAUSE");
    return 0;
    }

  7. #7
    Occhio, stdafx.h va incluso solo nei progetti Visual C++ con header precompilati, e la system("pause") non è portabile (su Linux, ad esempio, non va), senza contare che l'uso della system già di suo è cattiva pratica di programmazione; peraltro, per usarla avresti dovuto includere <cstdlib>.

    Un main di base portabile ovunque può essere invece:
    codice:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        cout<<"Hello world!"<<endl;
        cout<<"Premere Invio per uscire...";
        cin.ignore();
        return 0;
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

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.