Ho risolto quel problema grazie lo stesso, c'era un cin.ignore() di troppo; ora però che ho creato un altro file header e un file .cpp non parte piu... Se vuoi provarlo allego anche il .txt;
main.cpp
codice:
#include "criptolib.h"
using namespace 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();
}
else if(risposta==2){
cript.insertmystring();
cript.decripto();
cript.putsmystring();
}
cout<<"Ti servo ancora?[0/1]"<<endl;
cin>>risposta;
}
while(risposta);
return 0;
}
criptolib.h
codice:
#include <stdio.h>#include <stdlib.h>
#include <iostream>
#include <fstream>
#ifndef CRIPTOLIB_H
#define CRIPTOLIB_H
using namespace std;
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
extern const unsigned int 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();
inline void insertmystring(){
cin.ignore();
gets(mystring);
};
inline void putsmystring(){
puts(mystring);
};
};
#endif /* CRIPTOLIB_H */
criptolib.cpp
codice:
#include "criptolib.h"
void criptodecripto::cripto(){
for (unsigned short int y=0; mystring[y]; y++){
for(unsigned short int i=0; i<27;i++){
if (mystring[y]==alp[i]){
mystring[y]=key[i];
break;
}
else continue;
}
}
}
void criptodecripto::decripto(){
for (unsigned short int y=0; mystring[y]; y++){
for(unsigned short int i=0; i<27;i++){
if (mystring[y]==key[i]){
mystring[y]=alp[i];
break;
}
else continue;
}
}
}