[printf]C/unix
Résolu/Fermé
fredo10
ced - 9 janv. 2007 à 12:46
- Messages postés
- 31
- Date d'inscription
- vendredi 25 novembre 2005
- Statut
- Membre
- Dernière intervention
- 4 février 2006
ced - 9 janv. 2007 à 12:46
A voir également:
- Recoder printf
- [printf]C/unix ✓ - Forum - Programmation
- Unix : primitive systeme de printf ? ✓ - Forum - Linux / Unix
- Unix - Articles
- Printf hexa - Forum - Programmation
- Fichier unix - Articles
8 réponses
tafiscobar
8 déc. 2005 à 13:55
- Messages postés
- 1277
- Date d'inscription
- jeudi 7 décembre 2000
- Statut
- Contributeur
- Dernière intervention
- 26 février 2009
8 déc. 2005 à 13:55
salut, pour le nombre variable d'arguments, on utilise l'entete stdarg.h, tas une petite explication ici http://homepage.mac.com/pierremousel/LangC/LangCArgumentsVar.html
Si tu maitrises cette techique le reste sera juste du cas par cas.
Si tu maitrises cette techique le reste sera juste du cas par cas.
kilian
7 déc. 2005 à 14:54
- Messages postés
- 8731
- Date d'inscription
- vendredi 19 septembre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 août 2016
7 déc. 2005 à 14:54
Salut,
Sous quel système d'exploitation? Quelle version de Php?
Sous quel système d'exploitation? Quelle version de Php?
kilian
7 déc. 2005 à 15:02
- Messages postés
- 8731
- Date d'inscription
- vendredi 19 septembre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 août 2016
7 déc. 2005 à 15:02
Oups pardon, me suis gourré de message. (Chais pas comment j'ai fait mais bon....).
Ben du coup je vais essayer de répondre à ta question.
En fait tout dépend des fonctions que tu as le droit d'utiliser.
Est ce que tu as droit d'utiliser sprintf() ou fprintf() ?
Est ce que tu as le droit d'utiliser fwrite()?
Par contre je pourrais pas t'aider en ce qui concerne le nombre d'arguments indéfini en entrée de printf(). Je sais pas comment on fait.
Ben du coup je vais essayer de répondre à ta question.
En fait tout dépend des fonctions que tu as le droit d'utiliser.
Est ce que tu as droit d'utiliser sprintf() ou fprintf() ?
Est ce que tu as le droit d'utiliser fwrite()?
Par contre je pourrais pas t'aider en ce qui concerne le nombre d'arguments indéfini en entrée de printf(). Je sais pas comment on fait.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fredo10
7 déc. 2005 à 19:56
- Messages postés
- 31
- Date d'inscription
- vendredi 25 novembre 2005
- Statut
- Membre
- Dernière intervention
- 4 février 2006
7 déc. 2005 à 19:56
non je n'ai pas le droit d'utiliser fprintf et sprintf
kilian
7 déc. 2005 à 20:00
- Messages postés
- 8731
- Date d'inscription
- vendredi 19 septembre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 août 2016
7 déc. 2005 à 20:00
Et fwrite?
a la place de printf() tu fait cout<<".... ";
kilian
7 déc. 2005 à 21:10
- Messages postés
- 8731
- Date d'inscription
- vendredi 19 septembre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 août 2016
7 déc. 2005 à 21:10
C'est du C++ cout, pas du C :-)
toto
>
kilian
7 déc. 2005 à 21:15
- Messages postés
- 8731
- Date d'inscription
- vendredi 19 septembre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 août 2016
7 déc. 2005 à 21:15
eh ben mm pour le c ca marche
simplement fait un test !!!
simplement fait un test !!!
tafiscobar
8 déc. 2005 à 14:02
- Messages postés
- 1277
- Date d'inscription
- jeudi 7 décembre 2000
- Statut
- Contributeur
- Dernière intervention
- 26 février 2009
8 déc. 2005 à 14:02
le cout c'est juste pour le C++. Le C ne les connais pas.
kilian
7 déc. 2005 à 21:35
- Messages postés
- 8731
- Date d'inscription
- vendredi 19 septembre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 août 2016
- Messages postés
- 8731
- Date d'inscription
- vendredi 19 septembre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 août 2016
7 déc. 2005 à 21:35
kilian@Tourte:~/Desktop$ gcc test.c -o test test.c:1:22: error: iostream.h: Aucun fichier ou répertoire de ce type test.c: In function 'main': test.c:5: error: 'cout' undeclared (first use in this function) test.c:5: error: (Each undeclared identifier is reported only once test.c:5: error: for each function it appears in.)
Même chose si j'enlève le .h de iostream.
Après, je ne sais pas, peut être que je n'ai pas la bibliothèque manquante....
EDIT: en fait si je l'ai, mais elle n'est prise en compte que par g++ (donc mon compilateur c++, mais pas par gcc, mon compilateur c)
fredo10
8 déc. 2005 à 13:45
- Messages postés
- 31
- Date d'inscription
- vendredi 25 novembre 2005
- Statut
- Membre
- Dernière intervention
- 4 février 2006
- Messages postés
- 8731
- Date d'inscription
- vendredi 19 septembre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 août 2016
8 déc. 2005 à 13:45
mais franchement moi je ne comprend rien de tout ce ke vous ecrivez la vous pouvez m'expliquer un peu s'il vous plait? merci.
en ce que concerne le cout<< ca marche pour le c et pour le c++
tout mes tp du langage c sous unix je les fait avec cin et cout
tout mes tp du langage c sous unix je les fait avec cin et cout
fredo10
9 déc. 2005 à 16:15
- Messages postés
- 31
- Date d'inscription
- vendredi 25 novembre 2005
- Statut
- Membre
- Dernière intervention
- 4 février 2006
9 déc. 2005 à 16:15
je voudrais savoir cmt utiliser les varicaps pour recoder printf
kilian
9 déc. 2005 à 18:52
- Messages postés
- 8731
- Date d'inscription
- vendredi 19 septembre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 août 2016
9 déc. 2005 à 18:52
Tu as lu ce que j'ai ecris au dessus?
8 déc. 2005 à 14:23
8 déc. 2005 à 18:54
Avec la chaine du genre "machin %s bidule"
Donc là il faut que tu prennes chaque caractère l'un après l'autre pour le mettre dans un buffer (une variable tableau, dynamique de préférence, donc à allouer avec malloc() et realloc() s'il le faut par la suite).
Et dés que tu tombes sur un '%' alors il faut analyser la lettre après. En fonction de ça il faut aller chercher l'argument correspondant et le formatter.
Par exemple si c'est un %s, tu prends l'argument correspondant, normalement un pointeur vers un tableau de caractère, et tu charges son contenu dans le buffer.
Si c'est un %d, là tu as affaire à une variable dont la valeur devra être convertie en ascii avant d'être chargée dans le buffer.
J'espère que tu as déjà vu ce genre de trucs en cours...
Pour d'autres arguments comme %f, donc un float je ne vois pas trop comment faire par contre.