PDA

Visualizza la versione completa : aiuto CRC in c++


sylais
03-11-2014, 16:05
salve ragazzi
ho un problema riguardante il programma di crc da me sviluppato, per prima cosa devo passarlo in java ma quello un problema secondario,il problema principale che il programma oltre a rilevarmi il crc deve andare a inserirsi in una stringa contenente il valore iniziale binario e il valore del crc.
posto il codice qui :


#include <cstdlib>#include <iostream>
#include <string.h>


using namespace std;


const int DIM=20;
int main()
{
string A,B,C,D;
int lung,i=0,i1,n,cont,lunga;
char e;


cont=0;
cout<<"inserire la stringa da elaborare[F(x)]\n : ";
cin>>A;
cout<<endl;


cout<<"inserire il polinomio generatore[G(x)] N.B deve essere piu' corta della stringa da elaborare!!': ";
cin>>B;
cout<<endl;




lunga=A.length();
lung=B.length();


while(lunga<lung){
cout<<"la stringa da elaborare e' piu' corta del polinomio generatore.\n";
cout<<"inserire la stringa da elaborare: ";
cin>>A;
lunga=A.length();
}


while(i<lunga){
if((A.at(i)!='0')&&(A.at(i)!='1')){
cout<<"la stringa da elaborare e' errata!!\n";
cout<<"inserire la stringa da elaborare[F(x)]\n N.B. deve essere piu' lunga del polinomio generatore: ";
cin>>A;
lunga=A.length();
i=0;

}
else i++;
}

i=0;

while(i<lung){
if((B.at(i)!='0')&&(B.at(i)!='1')){
cout<<"il polinomio e' errato."<<endl;
cout<<"inserire il polinomio generatore[G(x)]: ";
cin>>B;
lung=B.length();
i=0;

}
else i++;
}





for(i=0;i<lung-1;i++){
A=A+"0";
}

D=D+A.substr(0,lung);
lunga=A.length();


while(lunga>=lung){
i1=0;
cont=0;

for(i=0;i<lung;i++){
e=D.at(i)^B.at(i1);
e+=48;
C=C+e;
i1++;
}

for(i=0;((i<C.length())&&(C.at(i)=='0'));i++)
{
cont++;
}

C.erase(0,cont);

A.erase(0,lung);

A=C+A;
D.clear();
C.clear();
D=A.substr(0,lung);
lunga=A.length();

}

lung=B.length();
i=0;
lunga=A.length();

while(lunga<lung){
A="0"+A;
i++;
lunga=A.length();
}



cout<<"il crc e': "<<A<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

il problema che avendolo fatto con string e non con char non mi funziona strcpy e strcat ...
sono ormai alla deriva....

Rising1
03-11-2014, 16:54
Se ho capito bene potrebbe servire un metodo della classe string come c_str() che ritorna la stringa nel formato del c classico (char*)

Mentre per concatenare ad un oggetto string un oggetto char* sufficente usare l'operatore + ridefinito nella classe string

sylais
03-11-2014, 17:38
puoi farmi un esempio di come finziona la tua idea prendendo le mie variabili?

sylais
03-11-2014, 17:46
la seconda parte invece non l'ho capita proprio...cosa intendi per "ridefinito nella classe string?"

Loading