Compiler sous ubuntu
Fermé
batman19
-
4 mai 2010 à 01:26
c_amigo Messages postés 5 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 30 novembre 2010 - 27 août 2010 à 02:40
c_amigo Messages postés 5 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 30 novembre 2010 - 27 août 2010 à 02:40
A voir également:
- Compiler sous ubuntu
- Ubuntu iso - Télécharger - Systèmes d'exploitation
- Ubuntu 24.04 - Accueil - Ubuntu
- Ubuntu 32 bits - Télécharger - Systèmes d'exploitation
- Comment compiler des pdf - Guide
- Inno setup compiler - Télécharger - Édition & Programmation
5 réponses
Franzux
Messages postés
8907
Date d'inscription
mercredi 5 décembre 2007
Statut
Contributeur
Dernière intervention
27 octobre 2015
1 145
4 mai 2010 à 08:06
4 mai 2010 à 08:06
CÇM est un forum, pas un clavier de téléphone portable. En conséquence, tu n'obtiendras de réponse à ta question qu'en usant d'un vocabulaire adapté et d'une orthographe correcte. Ainsi que le disait le poète : "Ce qui se conçoit bien s'énonce clairement" (Nicolas Boileau). Ton message n'étant pas convenablement rédigé, cela nuit gravement à la situation de communication nécessaire à l'utilisation d'un forum. En conséquence, tu es prié de bien vouloir reformuler ce message de façon plus correcte. Pour plus d'informations, n'hésite pas à consulter l'article du règlement concernant l'écriture sur CÇM. Merci de ta compréhension.
Cordialement,
Franz.
Cordialement,
Franz.
ok désolé pour le dernier message,en fait c'est la première fois que je pose une question dans un forum et honnêtement je n'ai pas consulté l'article du règlement.Malheureusement, je me suis habitué à utiliser ce langage , mais quand même c'est pas une raison pour rédiger de cette façon...veuillez m'excusez encore et voilà mon message reformulé :
bonjour ,
j'ai eu des problèmes lors de l'exécution de ce programme main:
#include<stdio.h>
#include"somme.h"
#include"produit.h"
main (int argc, char *argv[ ])
{
int a;
if(argv[1]==1)
{ a=somme(argv[2],argv[3]);
printf("operation somme demandée le resultat est %d ",a);
}
else if(argv[1]==2)
{ a=produit(argv[2],argv[3]);
printf("operation produit demandée le resultat est %d",a);
}
else
printf("erreur");
}
message d'erreur affiché:
main.c:4: error: stray '\302' in program
main.c:4: error: stray '\240' in program
merci d'avance pour votre aide
bonjour ,
j'ai eu des problèmes lors de l'exécution de ce programme main:
#include<stdio.h>
#include"somme.h"
#include"produit.h"
main (int argc, char *argv[ ])
{
int a;
if(argv[1]==1)
{ a=somme(argv[2],argv[3]);
printf("operation somme demandée le resultat est %d ",a);
}
else if(argv[1]==2)
{ a=produit(argv[2],argv[3]);
printf("operation produit demandée le resultat est %d",a);
}
else
printf("erreur");
}
message d'erreur affiché:
main.c:4: error: stray '\302' in program
main.c:4: error: stray '\240' in program
merci d'avance pour votre aide
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
4 mai 2010 à 11:25
4 mai 2010 à 11:25
Salut,
Tu devrais utiliser le type int pour main
Je vois dans ton code que tu comparres une chaîne de caractère avec un integer.
Mes ces erreurs ne viennent pas de là.
Je pense qu'il y a des caractères non imprimables dans ton code
Affiche le résultat de
Tu devrais utiliser le type int pour main
Je vois dans ton code que tu comparres une chaîne de caractère avec un integer.
Mes ces erreurs ne viennent pas de là.
Je pense qu'il y a des caractères non imprimables dans ton code
Affiche le résultat de
perl -pe 's/(.)/"$1=" . ord($1)/eg' ton_fichier.c
Salut,
Merci bien pour ta réponse ,en fait ta remarque est très importante; on ne peut pas comparer un caractère à un entier.J'ai trouvé 90% de la solution et j'ai utilisé la fonction"atoi" de<stdlib.h> permettant de convertir un caractère à un entier.Mais toujours le même message s'affiche :
main.c:5: error: stray '\302' in program
Donc je pense qu'il s'agit d'un problème de compilation (ligne 5)
#include<stdio.h>
#include<stdlib.h>
#include"somme.h"
#include"produit.h"
void main (int argc, char*argv[])
{
int a;
char* arg1,arg2,arg3;
arg1=argv[1];
arg2=argv[2];
arg3=argv[3];
if(atoi(arg1)==1)
{ a=somme(atoi(arg2),atoi(arg3));
printf("operation somme demandée le resultat est %d ",a);
}
else if (atoi(arg1)==2)
{ a=produit(atoi(arg2),atoi(arg3));
printf("operation produit demandée le resultat est %d",a);
}
else
printf("erreur");
}
Et je veux comprendre cette ligne de commande s'il vous plait
perl -pe 's/(.)/"$1=" . ord($1)/eg' ton_fichier.c
Merci bien pour votre aide
Merci bien pour ta réponse ,en fait ta remarque est très importante; on ne peut pas comparer un caractère à un entier.J'ai trouvé 90% de la solution et j'ai utilisé la fonction"atoi" de<stdlib.h> permettant de convertir un caractère à un entier.Mais toujours le même message s'affiche :
main.c:5: error: stray '\302' in program
Donc je pense qu'il s'agit d'un problème de compilation (ligne 5)
#include<stdio.h>
#include<stdlib.h>
#include"somme.h"
#include"produit.h"
void main (int argc, char*argv[])
{
int a;
char* arg1,arg2,arg3;
arg1=argv[1];
arg2=argv[2];
arg3=argv[3];
if(atoi(arg1)==1)
{ a=somme(atoi(arg2),atoi(arg3));
printf("operation somme demandée le resultat est %d ",a);
}
else if (atoi(arg1)==2)
{ a=produit(atoi(arg2),atoi(arg3));
printf("operation produit demandée le resultat est %d",a);
}
else
printf("erreur");
}
Et je veux comprendre cette ligne de commande s'il vous plait
perl -pe 's/(.)/"$1=" . ord($1)/eg' ton_fichier.c
Merci bien pour votre aide
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
5 mai 2010 à 18:34
5 mai 2010 à 18:34
Salut,
Et je veux comprendre cette ligne de commande s'il vous plait
Et moi je veux que tu ouvres une console et que tu tapes la commande ensuite tu affiches le résultat.
La commande me permet de voir ce que tu as comme caractères dans ton fichiers.
Et je veux comprendre cette ligne de commande s'il vous plait
Et moi je veux que tu ouvres une console et que tu tapes la commande ensuite tu affiches le résultat.
La commande me permet de voir ce que tu as comme caractères dans ton fichiers.
Bonjour,
Une autre commande (Linux) permettant d'afficher les caractères non-imprimables , cause de ton problème ici, est "od -c MON_FICHIER".
La sortie de cette commande n'est pas très lisible, mais tu verras exactement les caractères que contient ton fichier, et tu te rendras compte qu'il contient les fameux caractères \302 et \240, qui ne sont pas imprimables, n'apparaissent donc pas à l'écran, mais te pourrissent ta syntaxe et t'empêchent de compiler.
M'est avis que tu vas trouver ces caractères juste après le crochet ouvrant de la ligne 4 "argv[ ". En effet, ces caractères sont insérés par la combinaison de touche [AltGr] + Espace. Donc si tu n'as pas relâché la touche [AltGr] au moment où tu as inséré l'espace entre les deux crochets à la ligne 4, tu auras inséré ces ennuyeux caractères invisibles.
Solution = effacer la ligne, et la réécrire en faisant bien attention à ce problème (pas de copier-coller, qui copie-collera ces caractères, et ne résoudra donc rien).
Une autre commande (Linux) permettant d'afficher les caractères non-imprimables , cause de ton problème ici, est "od -c MON_FICHIER".
La sortie de cette commande n'est pas très lisible, mais tu verras exactement les caractères que contient ton fichier, et tu te rendras compte qu'il contient les fameux caractères \302 et \240, qui ne sont pas imprimables, n'apparaissent donc pas à l'écran, mais te pourrissent ta syntaxe et t'empêchent de compiler.
M'est avis que tu vas trouver ces caractères juste après le crochet ouvrant de la ligne 4 "argv[ ". En effet, ces caractères sont insérés par la combinaison de touche [AltGr] + Espace. Donc si tu n'as pas relâché la touche [AltGr] au moment où tu as inséré l'espace entre les deux crochets à la ligne 4, tu auras inséré ces ennuyeux caractères invisibles.
Solution = effacer la ligne, et la réécrire en faisant bien attention à ce problème (pas de copier-coller, qui copie-collera ces caractères, et ne résoudra donc rien).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
c_amigo
Messages postés
5
Date d'inscription
mardi 11 mai 2010
Statut
Membre
Dernière intervention
30 novembre 2010
27 août 2010 à 02:40
27 août 2010 à 02:40
Merci bien pour votre aide Philou