{"id":5381,"date":"2016-08-18T06:42:45","date_gmt":"2016-08-18T06:42:45","guid":{"rendered":"http:\/\/anthroponaute.fr\/blog-informatique\/?p=5381"},"modified":"2020-02-07T10:54:52","modified_gmt":"2020-02-07T10:54:52","slug":"convertissez-rapidement-des-chaines-de-caracteres-avec-swscanf","status":"publish","type":"post","link":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/?p=5381","title":{"rendered":"Convertissez rapidement vos cha\u00eenes de caract\u00e8res avec swscanf"},"content":{"rendered":"<p><a href=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/ascii.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-5386\" src=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/ascii.png\" alt=\"ascii\" width=\"532\" height=\"370\" srcset=\"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/ascii.png 1000w, https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/ascii-300x209.png 300w, https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/08\/ascii-624x434.png 624w\" sizes=\"(max-width: 532px) 100vw, 532px\" \/><\/a><\/p>\n<p><strong>Intro : <\/strong><\/p>\n<p>Parfois dans un programme on veut <strong>retranscrire rapidement<\/strong> un morceau de cha\u00eene de caract\u00e8res (<strong>en entr\u00e9e<\/strong>) vers un autre type (<strong>en arriv\u00e9e<\/strong>) que l&rsquo;on souhaite.<\/p>\n<p><strong>Pr\u00e9requis :<\/strong><\/p>\n<p>&#8211; Savoir lire du <em>C++<\/em><\/p>\n<p>&#8211; \u00catre<em> curieux<\/em> !<\/p>\n<p><strong>Explications :<\/strong><\/p>\n<p>Pour se faire, on utilisera la fonction d\u00e9finie dans l&rsquo;en-t\u00eate C++ <strong>&lt;cwchar&gt; <\/strong>nomm\u00e9e <strong>swscanf<\/strong>. Cette fonction lit les donn\u00e9es d&rsquo;une cha\u00eene de caract\u00e8re \u00e9tendue et l&rsquo;analyse selon un format sp\u00e9cifi\u00e9. Le r\u00e9sultat est stock\u00e9 dans un endroit sp\u00e9cifi\u00e9 dans les param\u00e8tres additionnels.<\/p>\n<p>Le format de cette fonction est le suivant :<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nint swscanf (const wchar_t* ws, const wchar_t* format, ...);\r\n<\/pre>\n<p><strong><em><br \/>\nParam\u00e8tres :<\/em><\/strong><\/p>\n<p style=\"padding-left: 30px;\">&#8211; <strong><em>ws<\/em> <\/strong>: une cha\u00eene de caract\u00e8re \u00e9tendue \/ large (sur 32 bits) que la fonction se sert pour recevoir les donn\u00e9es \u00e0 traiter.<\/p>\n<p style=\"padding-left: 30px;\">&#8211; <strong><em>format<\/em> <\/strong>: contient une cha\u00eene de caract\u00e8res sp\u00e9cifiant le sch\u00e9ma \/ patron de la cha\u00eene \u00e0 analyser ; le format sp\u00e9cifi\u00e9 suit le m\u00eame sch\u00e9ma que la fonction <strong>scanf<\/strong>.<\/p>\n<p style=\"padding-left: 30px;\">&#8211; <strong><em>&#8230;<\/em> <\/strong>: il s&rsquo;agit des param\u00e8tres additionnels qui vont servir \u00e0 stocker les valeurs sortantes.<\/p>\n<p><strong>Valeur de retour :<\/strong><\/p>\n<p style=\"padding-left: 30px;\">\n&#8211; <span id=\"mt9\" class=\"sentence SentenceHover\" data-guid=\"c0c8de688757c388c42576d714cd12a6\" data-source=\"A return value of 0 indicates that no fields were assigned.\">La valeur de retour\u00a00 indique qu&rsquo;aucun champ n&rsquo;a \u00e9t\u00e9 assign\u00e9<\/span><br \/>\n&#8211; R<span id=\"mt8\" class=\"sentence SentenceHover\" data-guid=\"2105e0b4f43e867aac6dd951a6d34c4f\" data-source=\"Each of these functions returns the number of fields successfully converted and assigned; the return value does not include fields that were read but not assigned.\">etourne le nombre de champs qui sont correctement convertis et assign\u00e9s<\/span><\/p>\n<p><strong>Exemple :<\/strong><\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nwchar_t sentence [] = L&quot;Cl\u00e9ment a 28 ans&quot;;\r\nwchar_t str [20];\r\nint i;\r\n\r\nswscanf (sentence,L&quot;%ls %*s %d&quot;,str,&amp;i);\r\nwprintf (L&quot;%ls -&gt; %d\\n&quot;,str,i);\r\n<\/pre>\n<p><strong><br \/>\nAffiche<\/strong> : Cl\u00e9ment -&gt; 28.<\/p>\n<p><strong>R\u00e9sum\u00e9 :<\/strong><\/p>\n<p>Nous avons pr\u00e9sent\u00e9 une m\u00e9thode pour convertir une cha\u00eene format\u00e9e en entr\u00e9e.<\/p>\n<p><strong>R\u00e9f\u00e9rences :<\/strong><\/p>\n<p>&#8211; http:\/\/www.cplusplus.com\/reference\/cwchar\/swscanf\/<\/p>\n<p>&#8211; https:\/\/msdn.microsoft.com\/fr-fr\/library\/zkx076cy.aspx<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Intro : Parfois dans un programme on veut retranscrire rapidement un morceau de cha\u00eene de caract\u00e8res (en entr\u00e9e) vers un autre type (en arriv\u00e9e) que l&rsquo;on souhaite. Pr\u00e9requis : &#8211; Savoir lire du C++ &#8211; \u00catre curieux ! Explications : Pour se faire, on utilisera la fonction d\u00e9finie dans l&rsquo;en-t\u00eate C++ &lt;cwchar&gt; nomm\u00e9e swscanf. Cette [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/5381"}],"collection":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5381"}],"version-history":[{"count":34,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/5381\/revisions"}],"predecessor-version":[{"id":5914,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/5381\/revisions\/5914"}],"wp:attachment":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5381"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5381"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5381"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}