Hey je suis nouveau à la programmation en C++, et je reçois le coup de lui, mais je me suis coincé sur ce un simple problème je suis supposé créer un algorithme de chiffrement de décalage en utilisant les lettres A-Z
et de les déplacer 3 places, je reçois tout, mais quand Je fais ma sortie je reçois des lettres supplémentaires qui sont inutiles comme "|[|"
je sais que je dois mettre un terminateur et je l'ai fait mais ne semble pas fonctionner. Heres ma brouillon de mon programme.Pourquoi ce programme C++ imprime-t-il des caractères non pertinents?
#include<iostream>
#include<iomanip>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
//char
char caesar[]="THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG";
char cipher[255];
char lookup[26];
int key=3,i,index;
for(i=0;i<26;i++)
{
lookup[i]= static_cast<char>(65+i);
}
for(i=0;i<43;i++)
{
if (caesar[i]>='A' && caesar[i]<='Z')
{
index= static_cast<int>(caesar[i])-65;
cipher[i]=lookup[(index+key)%26];
}
else
cipher[i]=caesar[i];
}
//Null Terminator
cipher[i]!='\0'
cout<<cipher<<endl;
return 0;
}
Est-ce votre code réel? Il ne compile pas dans sa forme actuelle (bien que ce soit simplement un ';' manquant qui empêche la compilation). La ligne manquant le ';' semble être aussi le problème si c'est votre code, cependant. – eldarerathis
vous n'avez pas besoin d'utiliser 'static_cast' pour convertir' char' en 'int'. –
non c'était quelque chose que je viens d'arriver avec – Eric