IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

assignment makes integer from pointer without a cast


Sujet :

C

  1. #1
    Membre régulier

    Homme Profil pro
    Ingénieur développement produits
    Inscrit en
    Février 2016
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement produits
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 126
    Points : 71
    Points
    71
    Billets dans le blog
    1
    Par défaut assignment makes integer from pointer without a cast
    Hello les férus,

    je commence a toucher au C pour mes cours et je dois créer un programme "grille" qui a partir d'un fichier coordonnées me sort une grille spéciale.

    voici ma fonction main():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    int main() {
    	int coo1, coo2, x, y, k;
    	char str1[10], grille[WIDTH][HEIGHT];
    	identifier(grille);
    	FILE *FP;
    	FP = fopen("D:\\Documents\\m.m\\Documents\\Cours ESTIA\\Programmation\\coordonnees.txt", "r");
    	while (!feof(FP))
    		fscanf(FP, "%d %d %s", &coo1, &coo2, str1);
     
    		x = "%d", coo1;
    		y = "%d", coo2;
    		k = '%s', str1;
    		grille[x][y]=k;
    	fclose(FP);
    	afficher(grille);
    	return 0;
    }
    mon fichier coordonnées est de la forme
    7 8 o
    5 9 o
    .
    .
    .
    7 4 *
    5 2 *
    .
    .
    .

    et mon résultat est de la forme:

    Nom : exo2.png
Affichages : 309
Taille : 8,3 Ko

    petit probleme:
    je reçois une erreur "assignment makes integer from pointer without a cast" pour les lignes
    x = "%d", coo1;
    y = "%d", coo2;


    j'ai beau avoir chercher, je ne trouve pas ma solution.

    une idée?

    Merci,
    ICE

  2. #2
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Les lignes 10, 11 et 12 sont erronées. Peux-tu les commenter ? Qu'est-ce que tu cherchais à obtenir en les écrivant ?

    D'autre part il manque probablement des accollades pour définir le bloc de corps de boucle while, le C ne donne pas de sémantique à l'indentation contrairement au Python.

  3. #3
    Membre régulier

    Homme Profil pro
    Ingénieur développement produits
    Inscrit en
    Février 2016
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement produits
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 126
    Points : 71
    Points
    71
    Billets dans le blog
    1
    Par défaut
    hello,

    merci pour cette réponse rapide!

    ligne 10 : # prendre le premier caractère de la 1ere ligne du fichier coordonnées (chiffre) et donner cette valeur a x
    ligne 11: # prendre le deuxième caractère de la 1ere ligne du fichier coordonnées (chiffre) et donner cette valeur a y
    ligne 12 : # prendre le troisième caractère de la 1ere ligne du fichier coordonnées (lettre) et donner cette valeur a k

    et ce pour toute les lignes du fichier coordonnées.

    ces valeur serviront ensuite de coordonnées dans la grille (x, y) et k défini le caractère a entrer au coordonnées (x, y)


    j’espère que c'est clair...


    Merci,
    ICE

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    "mon résultat est de la forme", "devrait être" de la forme plutôt, nop ? Parce que la ton code ne compile pas.

    Plusieurs points :
    - l'indentation c'est bien, mais pas suffisant pour déterminer un bloc : il te faut des accolades pour regrouper les instructions de ton while,
    - x/y et coo1/coo2 sont tous des entiers : pas besoin de tergiverser pour assigner la valeur d'une var à l'autre, un simple '=' suffit,
    - dans k tu veux mettre le char à afficher je suppose, il suffit alors de lui assigner la première valeur de ta chaîne str1,
    - plus généralement toutes ces variables intermédiaires sont inutiles, et tu pourrais remplacer str1 par un simple char
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Ces valeurs te sont déjà fournies par fscanf. Tu peux directement utiliser les paramètres que tu lui as transmis, à savoir coo1 et coo2 pour les coordonnées, ou bien les affecter à x et y respectivement. Pour l'affectation de la chaîne de caractères, c'est un peu plus compliqué : revois la section de ton cours sur la manipulation de chaînes. Là-dessus je rejoins jopopmk : utilise un simple caractère au lieu d'une chaîne pour commencer.

    Tu te lances seulement ou tu as quelques heures de pratique du langage ? N'hésite pas à tout relire depuis le hello world, c'est pas du temps perdu.

  6. #6
    Membre régulier

    Homme Profil pro
    Ingénieur développement produits
    Inscrit en
    Février 2016
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement produits
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 126
    Points : 71
    Points
    71
    Billets dans le blog
    1
    Par défaut
    hello,

    merci pour ces réponses rapides! je vais donc modifier mon code et revenir si j'ai d'autre probleme

    pour ce qui est du C, c'est ma première année, voir semestre, et cet exercice est mon premier exo en solo (sans prof quoi). donc je patauge un peu

    Merci,
    ICE

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/05/2014, 00h29
  2. assignment makes integer from pointer without a cast
    Par MaybeMaybe dans le forum Débuter
    Réponses: 6
    Dernier message: 05/01/2014, 20h50
  3. Réponses: 2
    Dernier message: 02/04/2010, 12h44
  4. Réponses: 3
    Dernier message: 19/03/2009, 10h56
  5. Réponses: 25
    Dernier message: 04/10/2006, 00h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo