Question pour un exercice

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

J'aurais besoin d'aide pour un exercice.

Je viens a peine d'arriver dans un établissement d'étude en ligne, sauf qu'apparement les profs n'ont pas l'air de répondre aux messages.

Je dois faire un exercice en C++ sous eclipse ou je dois

Initialisé une variable entière qui représentera l'age

donc int age;

Et une autre variable chaine cette fois ci qui représentera un prénom.
N'ayant jamais codé ou peu de fois en C++, je vois que l'annotation syntaxique se met en bleu quand je précise "char". Donc je suppose que ca doit être ça

Mais quand j'essaie de faire par exemple


int age = 16;
char prenom = "Nicolas";

printf(prenom);
getch();
system("cls")
printf(age);
getch();

return 0;


Et donc en faisant ça je me retrouver avec les mêmes erreurs pour les 2 printf

"Initializing argument 1 of 'int printf(const char*, ...)'"
"Invalid conversion from char to const char"
"Invalid conversion from int to const char"

2 réponses

delfre56 Messages postés 350 Date d'inscription   Statut Membre Dernière intervention   48
 
Alors déjà non, char c'est un caractère. Toi tu veux une chaîne de caractères, donc c'est string qu'il faut utiliser. Il me semble qu'il faut ajouter un #include <string.h> ou quelque chose comme ça. L'autre solution étant de faire un tableau de caractères.
Bon par contre je ne comprends pas du tout ce que ton programme est censé faire. Si je comprends bien, tu affiches le prénom à l'écran, puis tu entres un caractère, tu effaces tout et tu affiche l'age, c'est bien ça ?
0
Utilisateur anonyme
 
Oui voilà. j'en suis qu'au début de mes cours donc ils veulent me faire découvrir le c++ dans un premier temps avec des exercices novice. Du coup merci de ta réponse

--
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut GinoX27,

Ton code ressemble à du C plutôt qu'à du C++.

si c'est vraiment en C++ que tu dois faire son exercice, tu devrais utiliser un objet string et faire
#include <string>
(et non string.h, qui est un entête pour du C) et l'assignation peut effectivement se faire avec l'opérateur =. Vois un exemple là :

http://www.cplusplus.com/reference/string/string/operator=/

de même printf est dans la bibliothèque standard du C, accessible avec
#include <stdio.h>
.

en C++ tu gérerais ta sortie vers l'écran de la console avec cout (accessible par
#include <iostream>
.

Si c'est du C que tu dois faire, tu as juste besoin de faire
#include <stdio.h>
. Ta syntaxe de printf() n'est cependant pas bonne, car il te manque la chaîne de format, et comme indiqué par delfre56, c'est un tableau de char que tu dois déclarer, et non un seul char. Donc, par exemple
char prenom[] = "Nicolas"
puis
printf("%s\n", prenom);
avec le spécificateur de chaîne.

http://www.cplusplus.com/reference/cstdio/printf/

Quant à
getch()
, ce n'est pas une fonction standard du C, ni du C++.

Dal
0
Utilisateur anonyme
 
Tu es totalement hors sujet :)

--
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223 > Utilisateur anonyme
 
En quoi est-ce qu'il est hors sujet?
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
Je constate que tu utilises www.cplusplus.com, utilise plutôt https://en.cppreference.com/w/ qui non seulement est un wiki donc modifiable au besoin, est plus fourni en exemples, plus à jour sur les standards, et plus fiable de manière générale.
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
@GinoX27:

Tu es totalement hors sujet :)

Oui, bien sûr. Je te souhaite néanmoins bonne chance pour la suite :-)

@gravgun:

Pour le C, le site cplusplus.com est à jour de C11, qui est le dernier standard en vigueur à ce jour pour le C. Je ne pratique pas suffisamment le C++ pour donner une opinion sur ce site comme ressource pour ce langage.

J'utilise aussi cppreference.com. Cependant, au-delà d'un certain degré de détails nécessaire, je lis le standard en ce qui me concerne (et après, je prends 2 aspirines).

Pour donner un lien vers des explications claires à un néophyte, je préfère envoyer : http://www.cplusplus.com/reference/cstdio/printf/ plutôt que https://en.cppreference.com/w/c/io/fprintf qui présente une page avec 11 prototypes mêlant printf, fprintf, sprintf,... mais avec un exemple seulement pour printf

cplusplus.com traite ces fonctions, qui sont différentes, sur des pages différentes, et avec des exemples différents, par exemple fprintf :

http://www.cplusplus.com/reference/cstdio/fprintf/


Dal
0
Utilisateur anonyme
 
Tu es hors sujet. Je m'explique.

Je suis nouveau dans le C++, j'ai déjà auparavant touché dans mes études au C#, html, php, sql (même si les 3 derniers n'ont aucun rapport avec le C certes).

Mes cours de cette année porte sur le C++, il n'y a donc aucune raison de me faire rentrer dans une logique de programmeur en C, c'était complètement inutile.

Ensuite pour
getch()
il est accessible avec
#include <conio.h>
0