
| Page Précédente 1 2 3 Suivante | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Auteur | Message | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 visiteur sur ce sujet (1 Anonyme) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Page Précédente 1 2 3 Suivante | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GuilOooo
|
# Posté le 22/04/2007 à 17:54:15 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PriPrOTtTt§!!!§![]()
|
Reprise du dernier message de la page précédente :
[1][5] Quand je fais un scanf pour récupérer un nombre, si l'utilisateur tape une lettre, j'ai plein de problèmes. Que faire ?Vous pouvez consulter lire ce tutoriel qui traite de scanf et de sa bonne utilisation. Alternativement, vous pouvez vous passer de scanf, par exemple en utilisant fgets pour les entrées. Vous pouvez également consulter cet autre tutorial sur le même sujet. PS : M@teo21 a lui même écrit quelque chose à ce sujet, c'est une annexe du cours de C. Lire l'annexe du cours de C sur les entrées sécurisées.
Édité
le 07/05/2008 à 21:06:56
par GuilOooo
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
zulon
|
# Posté le 23/04/2007 à 10:43:44 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]()
|
[5][4] Quelle est la différence entre une bibliothèque et une librairie ?
En informatique, une Bibliothèque logicielle est un ensemble de fonctions regroupées pour réaliser un groupe de tâches du même domaine. Une librairie est un local avec une porte, des fenêtres et des livres à vendre sur des étagères. Ne confondez pas les deux! Library, en anglais, est un "faux-ami", qui veux dire bibliothèque. L'erreur vient de là. Citation : M@teo21 - Le tuto A noter : le mot anglais est "library" et il se traduit par "bibliothèque". "Librairie" est donc un faux-ami. En théorie, on devrait donc dire bibliothèque et non librairie. Mais pour ma part, j'ai pris l'habitude d'écrire librairie (et je ne suis pas le seul ) donc je continuerai à utiliser ce terme. Retenez quand même que la traduction exacte est plutôt "bibliothèque".
Édité
le 25/04/2007 à 12:41:31
par zulon
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kevin Leonhart
|
# Posté le 28/04/2007 à 18:48:19 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Monde de merde![]()
|
[8][4] Comment récupérer la date et/ou l'heure ?
Toutes les fonctions utilisées dans cette question sont présentes dans l'en-tête <time.h>. La première étape est de récupérer le timestamp. Pour cela rien de bien dur : Code : C
On peut d'ailleurs vérifier qu'on a la bonne valeur en l'affichant : Code : C
Maintenant il nous faut se servir d'une fonction qui va déduire la date et l'heure à partir du timestamp. Cette fonction c'est ``ctime". Elle prend l'adresse de la variable contenant le timestamp en paramètre et en ressort une chaîne de caractères contenant toutes les informations. Code : C
Donnera par exemple : Code : Console
On peut aussi contrôler plus finement les informations qu'on veut afficher. Pour cela, il faut passer par une "conversion" du timestamp en une structure de type `tm'. La fonction ``localtime" s'en occupe très bien en nous renvoyant l'horaire locale, contrairement à ``gmtime" qui renvoie l'horaire UTC. Code : C
Comme vous pouvez le voir sur la page de documentation de la structure `tm', celle ci contient toutes les informations que nous voulons. Nous pouvons donc afficher l'heure par exemple en faisant simplement : Code : C
Ce qui chez moi donne : Code : Console
Méfiez vous tout de même, ça parait évident mais le programme vous affichera l'heure de votre système d'exploitation. Ainsi sur mon système qui a 2 heures de retard (allez savoir pourquoi ), le programme m'affiche 16 sans vergogne alors qu'il est 18 heures en réalité...A partir de votre instance de tm, vous pouvez aussi afficher tout d'un coup, grâce à ``asctime" Code : C
Donnera : Code : Console
Ou vous pouvez enfin formater seulement les informations qui vous intéressent dans une chaîne de caractères grâce à ``strftime". Code : C
Donnera par exemple : Code : Console
Comme vous le voyez, ce sont les formateurs %H, %M, ... qui indiquent ce qui atterrira dans votre chaîne. Pour la liste complète, reportez vous sur la page de documentation. La seule chose dont il faut se méfier c'est de créer une chaîne suffisamment longue.
Édité
le 04/05/2007 à 19:30:14
par Kevin Leonhart
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gouttegd
|
# Posté le 30/04/2007 à 00:50:18 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Serenity is a RAID 1 array.![]()
|
[2][5] Comment afficher des caractères accentués sous Windows ?
Par défaut, la console de Windows utilise un encodage hérité du temps de MS-DOS (l'encodage IBM 850), qui ne permet pas d'afficher les caractères accentués ou les caractères spéciaux comme ©, ®, «, », etc. Toutefois, l'encodage utilisé par la console de Windows est modifiable à volonté, par la commande chcp (CHange CodePage) intégrée à l'interpréteur de commandes. Ainsi, entrer cette commande Code : Console
indiquera à votre console d'utiliser la "page de code 1252", qui est un encodage très proche du Latin-1, idéal pour la langue française. Il n'est alors nul besoin de modifier vos programmes (ni même de les recompiler), les accents et autres caractères spéciaux s'afficheront sans problèmes. Une autre possibilité consiste à changer l'encodage directement depuis le code de votre programme, en utilisant la fonction appropriée de l'API Windows, SetConsoleOutputCP(). Dans ce cas, une bonne pratique consiste à récupérer l'encodage utilisé au démarrage du programme afin de pouvoir le restaurer à la sortie. Code : C
Quelle que soit la méthode retenue, si vous utilisez la console Windows "standard", il faut encore changer la police utilisée par celle-ci pour la remplacer par une police capable d'afficher des caractères accentués : clic-droit sur la barre de titre de la console, "Propriétés", dans l'onglet "Police", choisissez la police "Lucida Console". En fermant la fenêtre, sélectionnez "Enregistrer les propriétés pour les futures fenêtres portant le même titre". Notez que ce n'est pas nécessaire si vous utiliser le nouvel interpréteur de commandes de Microsoft, PowerShell. Autre possibilité, ne nécessitant aucune configuration de la console cible (au niveau de la fonte comme de l'encodage), l'utilisation des fonctions CharToOem ou CharToOemBuffer de l'API Windows : Code : C
(Merci à tc pour avoir suggéré cette solution. )
Édité
le 04/12/2007 à 13:25:10
par gouttegd
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
scriptoff
|
# Posté le 01/05/2007 à 20:52:21 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
While I breath , I hope![]()
études : IUT Grenoble 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yno
|
# Posté le 04/05/2007 à 12:06:02 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]()
|
[4][1] Comment transformer ma chaîne de caractères en une valeur (int, float) ?
Si vous possédez une chaîne de caractères tel que : Code : C
Il vous est possible d'extraire le nombre que représente cette chaîne afin d'obtenir une variable de type long valant 12. Pour cela, vous pouvez utiliser la fonction strtol() : Code : C
Il est aussi possible de convertir des nombres flottants. Pour cela, utilisez strtod() : Code : C
Un exemple d'utilisation pratique est disponible ici : http://www.siteduzero.com/tuto-3-11181 [...] -a-fgets.html Pour convertir une chaîne formatée, vous pouvez utiliser sscanf() : Code : C
La fonction sscanf renvoie un entier représentant le nombre de conversions réussis, il peut être bon de tester cette valeur afin de savoir si elle correspond aux nombres de conversions que l'on a demandé (2 dans notre cas), si elle est inférieur, il y a une erreur de format. Pour plus de précisions sur l'utilisation des fonctions strto* et *scanf, reportez-vous aux pages de man : Avec l'aimable participation de : - asmanur - scriptoff - Zulon
Édité
le 12/05/2007 à 17:46:28
par Yno
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yno
|
# Posté le 05/05/2007 à 12:07:59 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]()
|
[8][6] Que signifie le signe # dans une macro ?
Cela demande au préprocesseur d'encadrer la variable qui suivra # par des guillemets. Voici un exemple : Code : C
Code : Console
Au premier appel de la macro PRINTINT par exemple, le préprocesseur remplacera cet appel par cette ligne de code : Code : C
Édité
le 12/05/2007 à 17:46:12
par Yno
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
230
|
# Posté le 10/05/2007 à 00:13:23 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Porque te vas.![]()
|
[1][6]Comment peut-on lire une chaîne de caractères contenant des blancs (espaces, tabulations, etc.)?
D'abbord, je tiens à préciser que scanf est mal ! (voir FAQ [1][1]). La commande associée a scanf pour pouvoir lire des chaînes de caractères comportant des blancs est : Code : C
Lien informatif : scanf démythifiée Entrée solide en C |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smilz
|
# Posté le 11/05/2007 à 15:46:17 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
La vie est une blague![]()
Ville : Le barp |
[5][2] Comment compiler sous Vista avec MinGW/GCC ?
Code::Blocks et MinGWCette partie est désormais obsolète, Code::Blocks est maintenant compatible avec Vista. je vous conseil donc de lire le tuto de Nesquik69 et Xaviou : http://www.siteduzero.com/tutoriel-3-2 [...] e-blocks.html Le compilateur et le Code::BlocksIl vous faut déjà tout le matériel nécessaire :
Comme le dit Nesquik69 dans son tutoriel, ne changez surtout pas le lieu d'installation !!! Configurons MinGWJe ne ferais là que citer ce message : Citation : forum hard ware - Déplacer les fichiers suivant : C:\MinGW\libexec\gcc\mingw32\3.4.5\cc1.exe => C:\MinGW\bin\cc1.exe C:\MinGW\libexec\gcc\mingw32\3.4.5\cc1plus.exe => C:\MinGW\bin\cc1plus.exe C:\MinGW\libexec\gcc\mingw32\3.4.5\collect2.exe => C:\MinGW\bin\collect2.exe utilisez C:\MinGW\include et C:\MinGW\lib pour installer vos APIs il se peut que se ne soit pas 3.4.5, cela revient au même ! Configurons C::BCette étape est peut-être facultative ! Mais vérifier toujours au cas où Aller dans settings => Compiler and debugger... Une fenêtre s'ouvre, sélectionnez GNU GCC Compiler dans la première liste déroulante puis toolchain executables dans la deuxième, cliquez sur auto-detect. Si dans la boîte texte à coté s'affiche C:\MinGW alors c'est bon ! sinon, recopier tout ce qu'il y a sur le screen ci-dessous : Le Set as default sert juste à dire que vous utilisez ce compilateur par défaut, je le précise pour ceux qui ont utilisé VC++ Express édition® avant MinGW. Je crois qu'il faut relancer l'IDE en suite, à vérifier. Maintenant, vous devez mettre vos bibliothèques dans le dossier C:\MinGW\includes\ et C:\MinGW\libs\ Dev-C++ et CygwinLà c'est extrêmement simple : Aller, une petite aide : Lien de tréléchargement de cygwin http://www.siteduzero.com/forum-83-122 [...] html#r1111270 http://www.siteduzero.com/forum-83-122 [...] html#r1111980 Et surtout, n'oubliez pas de relancez l'IDE !!! ou encore : http://www.siteduzero.com/forum-83-124 [...] html#r1124904 Vous pouvez maintenant compiler sous Vista avec Dev-C++
Édité
le 13/02/2010 à 10:16:16
par smilz
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
scriptoff
|
# Posté le 18/05/2007 à 12:51:16 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
While I breath , I hope![]()
études : IUT Grenoble 2 |
[7][9]Les bases de gdb
Sous linux , aprés avoir compilé votre binaire avec le support debug( "-g" ) Code : Console
vous obtenez ceci : -> (gdb) je vais vous indiquer les commandes les plus utile : r -> run , execute le binaire . Si le problème de votre programme est un segfault , il s'arreteras à la ligne de votre code qui le provoque . b-> breakpoints , interrompt le programme . vous pouvez utiliser un numèros de ligne , une fonction . permet d'explorer une fonction de votre code et vous executé le programme ligne par ligne , n-> ligne suivante . l-> list , liste le code source . Vous pouvez utiliser un nombre pour indiquer la ligne du milieu qu'il vas afficher . p-> print , affiche une variable . Il affiche tout ce que l'on veut : chaine de caractères , entiers. q->quit , pour quitter La complétion peut ètre utiliser via la touche tabulation. Plus d'informations dans ce tutoriel.
Édité
le 17/06/2007 à 19:46:34
par scriptoff
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GuilOooo
|
# Posté le 07/06/2007 à 20:54:26 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PriPrOTtTt§!!!§![]()
|
[7][3]Comment créer un OS ?
Faire un « vrai » OS, même s'il n'est qu'en console, est long et compliqué (si on veut avoir un truc correct, je ne parle pas d'un OS qui affiche «hello world» puis ne fait rien). Il va vous falloir plusieurs choses. Pour faire un OS, donc, il vous faudra un langage de programmation tel que le C, mais aussi un assembleur (et faire de l'assembleur). La toute première partie de votre OS, celle qui démarre l'ordi (le boot loader) doit être écrite en assembleur (à moins que vous preniez un soft qui fait le travail à votre place, comme GRUB. Ensuite, certaines autre portions critiques seront faite en assembleur. Le reste, vous pouvez le coder en C. Voici quelques liens pour vous orienter : Le plus important et ce par quoi vous devriez commencer : un système d'exploitation, c'est quoi ? Selon CommentCaMarche.net Selon Wikipedia Quelques systèmes d'exploitation et/ou noyaux que vous pouvez étudier : BOSO Kernel, un tutoriel construit autour d'un exemple. SOS (Simple OS), un OS tout simple dont vous pouvez étudier le code source. Minix, un autre code intéréssant à étudier proorOS, en C++, mais aussi utilisable (pour le boot sector par exemple) Kernel Linux 1.0 ... Tutoriaux sur les notions de système d'exploitation PelleGrini sur developpez Pagnotte sur developpez Un autre cours, en PDF EDIT : ce tutoriel remplace celui sur BosoKernel. Merci à ramiK de m'avoir envoyé le lien ! Quelques tutoriaux sur le codage à proprement parler vont venir, faut que je les retrouve. En attendant, si vous avez des adresses à ajouter, envoyez moi un MP.
Édité
le 06/12/2009 à 16:18:54
par GuilOooo
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GuilOooo
|
# Posté le 15/06/2007 à 18:10:44 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PriPrOTtTt§!!!§![]()
|
[6][1] Quand je compare ma variable avec un nombre dans un if, la condition est toujours vraie, même si elle n'est pas sensée l'être. Pourquoi ?
Probablement parceque vous vous êtes trompé d'opérateur. Vous avez utilisé '=' au lieu de '=='. Mauvais exemple :Code : C
Correction :Code : C
Que se passe t'il si je mets un seul égal ? Le compilateur ne dit rien ? Eh bien, avec un seul égal, la variable va être modifiée pour contenir le nombre auquel vous l'affectez. Après quoi, cette nouvelle valeur sera comparée à zéro (comme dans «if(variable)»). Ce n'est pas du tout ce que vous voulez, mais en C, c'est parfaitement légal, donc le compilateur ne met pas d'erreur (enfin, s'il est perspicace, il vous sortira tout de même un warning). L'opérateur ==, lui, compare la variable à la valeur. C'est cela que nous recherchons. Si vous avez peur de vous tromper, utilisez cette astuce : Code : C
En effet, ce code est tout aussi correct (comparer 18 à variable revient au même que de comparer variable à 18), mais, si vous vous trompez, vous aurez une erreur de votre compilateur : Code : C
En effet, ce code tente de mettre variable dans 18, ce qui n'a aucun sens car 18 est un nombre. Le compilateur vous le signalera et refusera de compiler. Ainsi, plus de risque d'erreur inaperçue. Avec la participation d'Yno et de scriptoff
Édité
le 16/06/2007 à 10:52:20
par GuilOooo
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GuilOooo
|
# Posté le 17/06/2007 à 15:54:28 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PriPrOTtTt§!!!§![]()
|
[6][2] Est-ce que j'ai le droit de faire if( variable == 1 || 2 || 3) ?
Hum... On rejoint un peu la question N°[6][1]. En gros, vous pouvez, mais il ne se passera pas ce à quoi vous vous attendez. Petit rappel : le programme convertit toutes les conditions qu'il rencontre en nombres : 0 si la condition est fausse, une autre valeur sinon. Vous pouvez le vérifier : Code : C
Donnera un truc du style : Code : Console
Ainsi, dans un if(), le programme rentre dans le bloc {} du if si le nombre obtenu après conversion est différent de 0. Ce qui signifie qu'il est possible d'écrire : Code : C
Vous pouvez d'ailleurs remplacer 1 par n'importe quelle valeur différente de 0. Bon. Maintenant, observons ce code : Code : C
Admettons que variable contienne 1. La condition est vraie. Elle est alors transformée comme ceci : Code : C
Vu qu'on utilise l'opérateur ||, soit "ou bien", il suffit que l'un de ces trois nombres soit différent de zéro pour que le bloc soit exécuté. comme 2 et 3 ne changent pas, c'est toujours le cas ! Donc cette condition sera toujours vraie, quelque soit la valeur de «variable». En fait, «2» et «3» sont évaluées comme des conditions séparées, et comme ce sont des chiffres différents de 0, ils sont toujours vrais. Du coup, on est obligés de faire : Code : C
Encore une fois, ici, le fait d'écrire cette mauvaise condition veut dire quelque chose en C, donc le compilateur ne se plaindra pas (ou il vous donnera un warning au pire). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PianoPâriss
|
# Posté le 18/06/2007 à 09:24:25 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Des hauts, des bas.
Ville : Bruxelles |
Tient, j'ai quelque chose d'intéressant: @ edit >> ( ), ah oui, j'utilise le mot 'case' pour donner une image, je sais que ce n'est pas très correct, mais bon...Si vous avez un buffer (char []) qui contient un nombre par exemple en 'case' 12 (donc buffer[12] = LeNombreQueJeVeuxObtenirDansUnInt). Vous allez donc devoir passer buffer à sscanf() ; Ok ? Alors, vous vous dites, je dois faire: Code : C - Afficher / masquer les numéros de ligne
C'est énervant de devoir créer une chaine juste pour sscanf() non ? (oui, rappelez vous, les programmeurs sont fénéants )Et ben, voila le truc: Code : C - Afficher / masquer les numéros de ligne
Le compilo va créer une chaine, donc, pour lui ça ne change rien, mais pour nous, c'est vachement plus pratique ![]() P.S. Il me semble qu'on peut aussi modifier l'argument 2 de sscanf() pour qu'il ne prenne que à partir du 12eme caractère mais bon, je préfère mon truc.
Édité
le 20/10/2007 à 14:27:49
par PianoPâriss
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yno
|
# Posté le 18/06/2007 à 11:11:16 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]()
|
Je rappelle la différence entre les chiffres et les nombres :
http://fr.wikipedia.org/wiki/Chiffre Citation : Zulon Ou pas: si c'est juste un chiffre, c'est atoi(buffer[12]); Soyez précis svp, car pour les chiffres, ceci est portable (merci candide) : Code : C - Afficher / masquer les numéros de ligne
De plus, atoi() attend un pointeur sur char, par un char, et pour finir elle est paraît-il dépréciée (elle et ses copines ato*). http://www.siteduzero.com/forum-83-125906-1303181.html#r1303181 Et pour les nombres, en supposant que nous en ayons un qui commence en "case" 12 : Code : C - Afficher / masquer les numéros de ligne
Édité
le 19/10/2007 à 13:49:58
par Yno
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Zoloom
|
# Posté le 23/07/2007 à 01:02:28 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]()
études : BTS IG Lyon |
[8][5] Exécuter une ou plusieurs fonction a la fermeture d'un programme :
Voila son prototype : Code : C
Effrayant hein ? Mais non c'est tout bête. Cette fonction permet d'exécuter une ou plusieurs fonction a la fin d'un programme. Elle sont lancées par exit dans l'ordre inverse de leur positionnement par atexit. Exemple : Code : C
Bien sûr il faut rajouter des choses, mais s'est juste pour vous montrer : Code : Console
Il me semble que le nombre de fonction appelable grâce a atexit est limité, à 20 (à vérifier).
Édité
le 23/07/2007 à 01:02:59
par Zoloom
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Caribou87
|
# Posté le 23/07/2007 à 09:21:43 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Citation
POSIX.1-2001 nécessite que l’implémentation suive au moins ATEXIT_MAX
(32) pour que de telles fonctions soient enregistrées. La limite actuelle de l’implémentation peut être obtenue avec sysconf(3). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
candide
|
# Posté le 07/10/2007 à 22:13:04 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"In C ode we trust"![]()
|
Pas mal cette nouvelle mouture de la FAQ.
Citation : Yno pour les chiffres, il me semble que ceci est portable : Code : C - Afficher / masquer les numéros de ligne
Oui, ça l'est, cf. le standard : Citation : Norme C99 5.2.1 Character sets [...] In both the source and execution basic character sets, the value of each character after 0 in the above list of decimal digits shall be one greater than the value of the previous. Comme l'a observé psychoh13 sur le forum, ici, pour les encodages ASCII ou EBCDIC, c'est même vrai pour les 16 chiffres hexadécimaux. EDIT Lien exact vers la réponse de psychoh13
Édité
le 17/11/2007 à 23:02:23
par candide
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
said78vf
|
# Posté le 22/11/2007 à 01:18:07 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]()
|
Citation : PianoPâriss
Tient, j'ai quelque chose d'intéressant: @ edit >> ( ), ah oui, j'utilise le mot 'case' pour donner une image, je sais que ce n'est pas très correct, mais bon...Si vous avez un buffer (char []) qui contient un nombre par exemple en 'case' 12 (donc buffer[12] = LeNombreQueJeVeuxObtenirDansUnInt). Vous allez donc devoir passer buffer à sscanf() ; Ok ? Alors, vous vous dites, je dois faire: Code : C - Afficher / masquer les numéros de ligne
C'est énervant de devoir créer une chaine juste pour sscanf() non ? (oui, rappelez vous, les programmeurs sont fénéants )Et ben, voila le truc: Code : C - Afficher / masquer les numéros de ligne
Le compilo va créer une chaine, donc, pour lui ça ne change rien, mais pour nous, c'est vachement plus pratique ![]() P.S. Il me semble qu'on peut aussi modifier l'argument 2 de sscanf() pour qu'il ne prenne que à partir du 12eme caractère mais bon, je préfère mon truc. Attention, les litéraux composés sont une nouveauté de C99, tous les compilateurs ne l'implémentent pas. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
boss_78
|
# Posté le 16/02/2008 à 18:45:45 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
☭ Court pour citation ☭
|
Citation : Kevin Leonhart
[6][1] Comment créer un MMORPG ?
Je pense que ce n'est pas tout à fait exact, je vais reprendre point par point.
En gros je dirais que MMORPG!=WoW |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1337833K
|
# Posté le 14/04/2008 à 14:58:09 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
lock cmpxchg8b eax
|
Comment récupérer un fichier se trouvant sur un serveur distant ?
C'est relativement compliqué, car un simple fopen() ne fonctionne pas. Vous devez employer l'API Socket de votre système, puis dialoguer avec le serveur distant dans le protocole adéquat. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
shareman
|
# Posté le 18/10/2008 à 16:49:57 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
charlotte <3![]()
Ville : Mertzwiller |
[2][6] Comment afficher correctement et simplement les caractères spéciaux dans la console ?
Les caractères spéciaux tels les accentués ne sont pas affichables "simplement" comme on voudrait le faire : Code : C
Avec le précédent code, on affiche ' ', or on aimerait afficher 'é'.Pour cela, l'une des meilleurs solutions consiste à passer par la valeur hexadécimale du caractère (cf la table ASCII) précédé de '\x'. le caractère spécial 'é' vaut 82 en hexa, donc pour l'afficher correctement, il faut corriger le code et compiler avec : Code : C
On peut utiliser cette méthode pour tous les caractères, même les plus tordus comme le bip sonore (hex : 7).
Édité
le 20/11/2008 à 17:45:21
par shareman
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Koral
|
# Posté le 29/01/2009 à 19:39:55 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]()
études : EPITECH Bordeaux |
Euh, crys', ton truc c'est bien gentil mais ça complique le code pour obtenir un résultat qui n'est de toute façon pas portable ...
Ta "solution" ne résout en aucun cas le fameux problème des caractères spéciaux de façon satisfaisante ... Je crois que Vista affiche bien les accents maintenant (à confirmer svp) donc ça règlera le problème à terme. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ok
|
# Posté le 26/07/2009 à 13:34:11 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#!/bin/sh![]()
études : BTS IG Évry |
[1][7] Quels sont les différentes séquences d'échappement avec printf et quels sont les différents formats à utiliser avec printf et scanf ?
J'ai remarqué qu'on posait souvent des questions du genre c'est quoi la différence entre %lf et %f ?. Il m'est donc venu l'idée de créer une liste qui présente les différentes séquences d'échappement et les différents formats avec printf et scanf, et à la demande de certains membres, j'ajoute cette liste à la FAQ. Les séquences d'échappement (caractères spéciaux) avec printf :
Les formats de sortie avec printf :
Remarque : Selon la man page de printf : - Les formats %d à %X concernent les variables de type int. Pour les variables de type short, il faut ajouter un h après le % (exemple : %hd) et pour les variables de type long, il faut ajouter, il faut ajouter un l après le % (exemple : %ld). - Les formats %f à %LG concernent les variables de type float. Pour les variables de type double, il faut ajouter un l après le % (exemple : %lf). Il se peut toutefois que vous ayez un Warning du genre "ISO C90 does not support the `%lf' printf format". En effet, les formats %lf (nombre à virgule de type double), %hhd (char signé) et %hhu (char non signé) n'existent qu'en C99. Les formats de saisie avec scanf :
Si vous voyez une erreur, n'hésitez pas à me contacter par MP afin de corriger si cela s'avère pertinent ...
Édité
le 08/03/2010 à 21:41:17
par ok
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
shareman
|
# Message supprimé pour le motif suivant : Discussions sur la question précédente. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ok
|
# Message supprimé pour le motif suivant : Discussions sur la question précédente. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
shareman
|
# Message supprimé pour le motif suivant : Discussions sur la question précédente. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ok
|
# Message supprimé pour le motif suivant : Discussions sur la question précédente. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Blackis
|
# Posté le 24/08/2009 à 10:50:41 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Civilizaton is Over![]()
|
Lorsque je compile sous Code::blocks, ça me sort "Nothing to be done". Pourquoi ?
Tout simplement parce que le code::blocks n'a pas de compilateur configuré. Pour cela, il faut le faire manuellement : Setting => Compiler and Debugger => Toolchain executable => Auto-detect. Ça devrais marcher maintenant ![]() Sinon, dans "Settings=>Compiler and Debugger=>Toolchain executables" (de votre logiciel code::Blocks), vous pouvez régler là où est le dossier "MinGW" à l'origine, c'est à dire : "C:\(Dossier d'instalation)\CodeBlocks\MinGW" Avec la participation de Titi29. Voir aussi Cette réponse. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ok
|
# Message supprimé pour le motif suivant : Discussions sur la question précédente. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exterminator
|
# Message supprimé pour le motif suivant : Discussions sur la question précédente. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Retour au forum "Langage C" ou à la liste des forums
Le Site du Zéro vous proposera bientôt de nouveaux cours partant de Zéro dans d'autres domaines que l'informatique !

