web-dev-qa-db-fra.com

Pourquoi ai-je des erreurs de compilation lors de ce programme C ++?

Je suis nouveau sur Ubuntu et son terminal. J'essaie de coder C++ en utilisant nano something.cpp un programme général "Hello World" au début.

J'ai tout d'abord eu une erreur à propos de iostream.h et cout non reconnue. J'ai cherché sur le Web et découvert qu'il s'agissait d'un C++ plus récent et nous avons dû utiliser iostream au lieu de iostream.h et std::cout au lieu de cout. Cela a bien fonctionné après ces modifications (compilé avec gcc).

Maintenant, j'ai essayé de créer le deuxième programme. Ici, je devais saisir mon nom et le message "Hello Myname" serait affiché.

Le code était:

#include <string>
#include <iostream>
int main()
{
  string g;
  std::cout << "What is your name?\n";
  std::cin >> g;
  std::cout << "Hello\n" << g << std::endl;
  return 0;
}

Quand j'ai essayé de compiler (en utilisant gcc myprog.cpp -o hello); J'ai eu les erreurs suivantes:

prog.cpp: In function ‘int main()’:
prog.cpp:5:1: error: ‘string’ was not declared in this scope
prog.cpp:5:1: note: suggested alternative:
/usr/include/c++/4.6/bits/stringfwd.h:65:33: note:   ‘std::string’
prog.cpp:5:8: error: expected ‘;’ before ‘g’
prog.cpp:7:13: error: ‘g’ was not declared in this scope

J'ai cherché sur le Web mais je n'ai trouvé aucune aide. Comment puis-je me débarrasser de ces erreurs?

Je serais également heureux si quelqu'un me proposait un livre sur ce "NOUVEAU" C++.

2
Anubhab

Tout d'abord, utilisez g++ pour compiler, ensuite vous avez oublié le qualificatif d'espace de noms pour la chaîne g. Essayez std::string g;. Et compilez-le avec g++ myprog.cpp -o hello.

3
ortang