Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Errore compilazione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2016
    Messaggi
    13

    Errore compilazione

    Ciao, ho scritto questo programma che in poche parole mi cripta e decripta una stringa; funzionava fino a quando non ho creato un file header (dove mettere il modello della classe) e un file .cpp (dove mettere i due metodi della classe), infatti ora anche non avendo cambiato nulla del codice non parte e non riesco a capire dove sia l'errore... Vi allego anche la chiave test che ho creato io

    main.cpp

    codice:
    #include"criptolib.h"
    
    usingnamespace std;
    
    int main(){
        criptodecripto cript("C:\\Users\\chris\\Desktop\\Chiave.txt");
        int risposta=0;
        do{
            puts("Vuoi criptare o decriptare[1/2]");
            cin>>risposta;
            system("cls");
            if(risposta==1){
                cript.insertmystring();
                cript.cripto();
                cript.putsmystring();
            }
            elseif(risposta==2){
                cript.insertmystring();
                cript.decripto();
                cript.putsmystring();
              
           }
            cout<<"Ti servo ancora?[0/1]"<<endl;
            cin>>risposta;
        }
        while(risposta);
        return0;
        }
    codice:
    
    
    criptolib.h
    codice:
    
    #include<stdio.h>
    #include<stdlib.h>
    #include<iostream>
    #include<fstream>
    #ifndef CRIPTOLIB_H
    #define CRIPTOLIB_H
    usingnamespace std;
    #ifdef __cplusplus
    extern"C"{
    #endif
    #ifdef __cplusplus
    }
    #endif
    externconstunsignedint MAX =1000;
    char alp[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' '};
    class criptodecripto{
    private: 
        char mystring[MAX];
        char key[28];
    public:
        criptodecripto(char* director){
            ifstream cinf(director, ios::in);
            if(cinf.good())
                cinf>>key; 
            else{
                cerr<<"Error"<<endl;
                exit(0);
            }
        }
        ~criptodecripto(){
            cout<<"IL MIO LAVORO E' FINITO"<<endl;
            system("pause");
        }
        void cripto();
        void decripto();
        inlinevoid insertmystring(){
            cin.ignore();
            gets(mystring);
        };
        inlinevoid putsmystring(){
            puts(mystring);
        };
    };
    
    
    #endif/* CRIPTOLIB_H */
    

    File allegati File allegati

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2016
    Messaggi
    13
    criptolib.cpp
    codice:
    
    #include"criptolib.h"
    void criptodecripto::cripto(){
        for(unsignedshortint y=0; mystring[y]; y++){
            for(unsignedshortint i=0; i<27;i++){
                if(mystring[y]==alp[i]){
                     mystring[y]=key[i];
                     break;
                    }
                elsecontinue;
            }
        }
    }
    void criptodecripto::decripto(){
        for(unsignedshortint y=0; mystring[y]; y++){
            for(unsignedshortint i=0; i<27;i++){
                if(mystring[y]==key[i]){
                     mystring[y]=alp[i];
                     break;
                    }
                elsecontinue;
            }
        }
     }
    

    Questi sono gli errori:
    cd 'W:\Documenti\Programming\CppApplication_1'
    C:\mingw\msys\1.0\bin\make.exe -f Makefile CONF=Debug
    "/C/mingw/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
    make.exe[1]: Entering directory `/w/Documenti/Programming/CppApplication_1'
    "/C/mingw/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk dist/Debug/MinGW-Windows/cppapplication_1.exe
    make.exe[2]: Entering directory `/w/Documenti/Programming/CppApplication_1'
    mkdir -p dist/Debug/MinGW-Windows
    g++ -o dist/Debug/MinGW-Windows/cppapplication_1 build/Debug/MinGW-Windows/criptolib.o build/Debug/MinGW-Windows/main.o
    build/Debug/MinGW-Windows/main.o:main.cpp.data+0x0): multiple definition of `alp'
    build/Debug/MinGW-Windows/criptolib.o:criptolib.cpp.data+0x0): first defined here
    build/Debug/MinGW-Windows/main.o: In function `basic_istream':
    c:/mingw/lib/gcc/mingw32/4.9.3/include/c++/istream:607: multiple definition of `MAX'
    build/Debug/MinGW-Windows/criptolib.o:c:/mingw/lib/gcc/mingw32/4.9.3/include/c++/iostream:74: first defined here
    collect2.exe: error: ld returned 1 exit status
    make.exe[2]: *** [dist/Debug/MinGW-Windows/cppapplication_1.exe] Error 1
    make.exe[2]: Leaving directory `/w/Documenti/Programming/CppApplication_1'
    make.exe[1]: *** [.build-conf] Error 2
    make.exe[1]: Leaving directory `/w/Documenti/Programming/CppApplication_1'
    make.exe": *** [.build-impl] Error 2

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Sposta il vettore alp nel file criptolib.cppm dopo la include

    codice:
    #include "criptolib.h"
    
    char alp[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' '};
    e togli la extern in
    codice:
    const unsigned int MAX = 1000;
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2016
    Messaggi
    13
    Grazie l'extern lo avevo già tolto era il vettore che non andava...

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.