2012-11-08 5 views
0

Ne fait rien, il ne me laisse même pas entrer quand j'appelle gets(), même mon IDE prétend que "statement n'a aucun effet".Mon code semble ne rien faire

#include <iostream> 
#include <cstring> 
#include <cstdio> 

using namespace std; 

int main() 
{ 
char userluv[800], fuusd[800], orig[800], key [51], priv [21]; 
int tempfussd[800], kint, pint, tint[5], c, lame; 

//get the basic info 
cout << "key? "; 
cin >> key; 
cout << "Second key? "; 
cin >> priv; 
cout << "Your lovely text?:\n"; 
gets(userluv); 

for(c=0; c<=key[c]; c++){ 
    kint += key[c]; 
} 
for(c=0; c<=priv[c]; c++){ 
    pint += priv[c]; 
} 

//do stuff to your key 
tint[0] = strlen(key) + strlen(priv); 
tint[1] = tint[0] * tint[0]; 

//string to int then do stuff 
    for(c=0; c<=userluv[c]; c++){ 
    tempfussd[c] = userluv[c]; 
    tempfussd[c] + kint; 
    tempfussd[c] * pint; 
    tempfussd[c] * tint[1]; 
} 

    cout << "\n" << tempfussd[c] << "\n"; 

return 0; 
} 
+1

Si cette est vraiment C++, vous devriez utiliser 'std :: string'. – chris

+0

Ne pas ignorer le résultat d'une opération d'entrée comme '>>'. C'est une erreur de le faire, et vous posterez une autre question dans une demi-heure pour expliquer pourquoi votre contribution n'est pas comme vous le souhaitez. –

+0

@Kerrek SB, je ne comprends tout simplement pas? – Duck

Répondre

1

Ces trois lignes sont des déclarations sans effet:

tempfussd[c] + kint; 
tempfussd[c] * pint; 
tempfussd[c] * tint[1]; 

Vous avez peut-être omis le = après la + et *?

Les états identifiés ci-dessus apparaissent dans la boucle:

for(c=0; c<=userluv[c]; c++){ 
    tempfussd[c] = userluv[c]; 
    tempfussd[c] + kint; 
    tempfussd[c] * pint; 
    tempfussd[c] * tint[1]; 
} 

Si (comme le laisse entendre par un commentaire) le += et *= est correcte, vous pouvez simplifier les choses par écrit:

for (c = 0; c <= userluv[c]; c++) 
    tempfussd[c] = (userluv[c] + kint) * pint * tint[1]; 
+0

Cela semble avoir fonctionné, merci! – Duck

1

Votre gets() est d'obtenir le \ n gauche de la dernière entrée sur cin >> priv. Faites comme ça:

cin >> priv; 
cout << "Your lovely text?:\n"; 
cin.get(); 
gets(userluv); 

le cin.get(); va gérer cela \ n. Passer à la caisse.

+0

Essayé, travaillé! Je vous remercie. – Duck

Questions connexes