2017-01-24 3 views
-2
#include <iostream> 
#include <string> 
using namespace; 

int main() 
{ 
    string word = " "; 

    do 
    { 
     cout << "Enter a word that has at least 5 characters: " << endl; 
     cin >> word; 
     }while(word.size() < 5); 

     char searchCh = '0'; 
     cout << "Enter a character and the program will tell " << 
     "you how many times it appears in the word " << word << "." << endl; 
     cin >> searchCh; 

     int counter = 0; 

    for(int i = 0; i < (int)word.size(); i++) 
    { 
     char ch = word.at(i) 

     if(searchCh == ch) 
     { 
      counter++; //counter = counter + 1 
     } 
    } 

    cout << "The number of " << searchCh << " 's in the word " << word << " is " << counter << ".\n"; 


} 

Je reçois constamment des erreurs multiples telles que: « endl » n'a pas été déclarée dans le champ « cin » n'a pas été déclaré dans ce champ « mot » n'a pas été déclaré dans ce champ « string » n'a pas été déclarée dans ce champ attendu ',' ou ';' avant le symbole '}'Quel est le problème avec mon code C++ sur les blocs de code?

J'utilise des blocs de code, si quelqu'un pouvait y répondre serait très apprécié. Merci: D

+1

'using namespace;' doit être 'l'aide namespace std; ' –

+1

Pas un changement de comportement, mais l'ensemble de votre boucle for pourrait être remplacé par un appel à' std :: count'. En prime, il devient immédiatement clair que le but de ce morceau de code est de compter les occurrences d'une valeur. – chris

+0

Codeblocks est un IDE; cette question n'a rien à voir avec un IDE. – MrEricSir

Répondre

2

L'une de vos premières lignes est

using namespace; 

Vous vouliez probablement écrire

using namespace std; 

Cependant, s'il vous plaît lire Why is using namespace std considered bad practice?

+1

En ce qui concerne cela c'est une mauvaise pratique: je ne suis pas programmeur C++ mais on peut utiliser l'alias espace de noms (http://en.cppreference.com/w/cpp/language/namespace_alias) sur les bibliothèques qui partagent ses noms avec std. Personnellement, j'aime taper moins. – MaLiN2223

+0

@ MaLiN2223 Je préfère avoir mon code aussi explicite que possible. Il y a bien sûr d'autres façons de régler le problème, mais ne pas en être conscient n'est pas une solution. Peut-être que je vais essayer d'exprimer la réponse un peu moins subjectif – user463035818

+0

Je ne suis pas en désaccord avec vous, mes habbits de C# ont beaucoup de poids ici. Cependant, je voulais juste dire l'alternative (comme vous l'avez dit, ne pas être au courant n'est pas une solution du tout: P). – MaLiN2223