Aller au contenu

"Hello World!" dans tous les langages


Taki

Messages recommandés

Bonsoir, je passais par là et j'ai vu des choses pas jolies (pour être tatillon):

En C++:

Taki #1

include <iostream.h>
main() {cout << "HELLO WORLD";}

simonkey Post #133

#include <iostream.h>
int main(int argc, char *argv[])  {cout << "HELLO WORLD";}

  1. Ne plus utiliser <iostream.h>, mais <iostream> (sans le .h)
    Et donc faire soit "using namespace std;" soit un "std::cout"
    La raison du pourquoi
  2. Toujours déclaré un type de retour à sa fonction (par défaut int, je crois). Et lorsqu'on le fait, toujours avoir UN return.
  3. Vive l'Unicode et à mort le MBCS (Multi-Byte Caracter Set)
  4. Mode parano: mettre void dans un passage de paramètre vide

Mon "Hello World" en C++ donc:

include <iostream>
using namespace std;

int main (void)
{
 wcout << "Hello World" << endl;

 return 0;
}

En C:

Taki #1

#include #stdio.h
main() {
printf("Hello world, Sarvok is Now the Best");
return 0;
}

simonkey #133

#include stdio.h
int main(int argc, char *argv[]) {
printf("Hello world, Sarvok is Now the Best");
return 0;
}

  1. Ne plus utiliser <stdio.h>, mais <cstdio> (sans le .h, et commençant par un C)
  2. Vive l'Unicode et à mort le MBCS (Multi-Byte Caracter Set)
  3. Mode Parano

Mon "Hello World" en C donc:

// Peut être pas portable sous Linux: à vérifier

#include <cstdio>

int main (void)
{
 int retour =  wprintf_s(L"Hello World\n");

 if (retour != 12) {
   return -1;
 }

 return 0;
}

En PHP:

Taki #1

<?php
echo "hello world";
//ou bien: print "hello world";
?>

Il faut mettre que des simple quotes, sinon il y a un parsage gratuit. Gratuit quoique cela dépend. Ou alors en NowDoc.

Mon "Hello World" en PHP donc:

<?php
 echo('Hello World');
//print('Hello World');
//die('Hello World'); // LOL

 echo <<<'HELLO'
Hello World

HELLO;
?>

EN HTML:

MAKB #12

<html>
<body>
<p>Hello world</p>
</body>
</html>

Le mal absolu: pas de head, pas de XHTML, pas de meta, pas de titre et vive l'unicode. Alors soyons fou utilisons la balise blink

Mon "Hello World" en HTML donc:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>Hello World</title>
</head>
<body>
 <blink>Hello World</blink>
</body>
</html>

Sinon:

savory #53

unsigned char hello[]=
"\x55\x89\xe5\x83\xec\x24\x53\xe8\x00\x00\x00\x00\x5b\x83\xc3\xf4\x8b\x83\x67"
"\x00\x00\x00\x89\x45\xf0\x8b\x83\x6b\x00\x00\x00\x89\x45\xf4\x8b\x83\x6f\x00"
"\x00\x00\x89\x45\xf8\x0f\xb7\x83\x73\x00\x00\x00\x66\x89\x45\xfc\x8d\x4d\xf0"
"\xba\x0e\x00\x00\x00\xb8\x04\x00\x00\x00\xc7\x45\xec\x01\x00\x00\x00\x53\x8b"
"\x59\xfc\xcd\x80\x5b\xb8\x01\x00\x00\x00\xc7\x45\xec\x00\x00\x00\x00\x53\x8b"
"\x59\xfc\xcd\x80\x5b\x5b\xc9\xc3\x48\x65\x6c\x6c\x6f\x20\x77\x6f\x72\x6c\x64"
"\x21\x0a\x00";
int main(){((void(*)())hello)();}

ShellForge

FiP_ #98

int n[]={0x48,
0x65,0x6C,0x6C,
0x6F,0x2C,0x20,
0x77,0x6F,0x72,
0x6C,0x64,0x21,
0x0A,0x00},*m=n;
main(n){putchar
(*m)!='\0'?main
(m++):exit(n++);}

error C2448: 'main' : function-style initializer appears to be a function definition

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 208
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

  • 2 semaines après...

Tiens, quelqu'un sait comment faire un Hello World en C sans aucune lib ? (j'entends même unistd.h)

Pour ce qui est du C ANSI (et ISO), c'est comme ça et pas autrement :

#include <stdio.h>
int main(void)
{
   printf("hello, world\n");
   return (0);
}

Ah et sinon :

Mon "Hello World" en C donc:

// Peut être pas portable sous Linux: à vérifier

[...]

Ils sont désespérants ces windoziens ... :transpi:

Lien vers le commentaire
Partager sur d’autres sites

Tiens, quelqu'un sait comment faire un Hello World en C sans aucune lib ? (j'entends même unistd.h)

Je pense à cela: Calling C Functions in Inline Assembly

// InlineAssembler_Calling_C_Functions_in_Inline_Assembly.cpp
// processor: x86
#include <stdio.h>

char format[] = "%s %s\n";
char hello[] = "Hello";
char world[] = "world";
int main( void )
{
  __asm
  {
     mov  eax, offset world
     push eax
     mov  eax, offset hello
     push eax
     mov  eax, offset format
     push eax
     call printf
     //clean up the stack so that main can exit cleanly
     //use the unused register ebx to do the cleanup
     pop  ebx
     pop  ebx
     pop  ebx
  }
}

PS: j'ai essayé mais cela plante méchamment. Autant sortir son nasm, masm (s'il existe encore) ou autre.

Pour ce qui est du C ANSI (et ISO), c'est comme ça et pas autrement :

C'est tout le problème du truc. En pure C, c'est vrai. Mais en C++ c'est faux.

La bibliothèque standard en C++

Le langage de programmation C++ reprend les fonctionnalités de la bibliothèque standard C ISO, mais il y fait plusieurs modifications, comme transformer les noms des en-têtes de <xxx.h> en <cxxx> (cependant, les noms dans le style C sont toujours disponibles, bien que périmés), et placer tous les identificateurs dans l'espace de noms (namespace) std.

Qui fait encore du C avec gcc :transpi: Le visual par défaut c'est C++.

Ils sont désespérants ces windoziens ... :transpi:

Je comprends mieux. :troll:

En effet, Windows est le seul à avoir fait le Secrity Enhancement in CRT

Moi, je trouve cela bien. C'est lourd (mais normal) à programmer mais au moins il n'y aura pas de débordement.

Lien vers le commentaire
Partager sur d’autres sites

En même temps on parle de quoi là, du C non ?

Non, ce que je voulais dire c'est que maintenant il faut faire attention pour vraiment faire du C avec un compilateur C et non pas C++. Tu as le compilateur C++ par défaut et donc il faut forcer ton compilateur en C: soit aux options soit à l'extension de tes sources (.c) (<- Si cela marche encore).

Je connais pas ce que fait gcc, mais Visual c'est qu'il fait.

Heu ... moi ? :p

À ceci explique cela: :troll:

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...
  • 1 mois après...

EN HTML:

MAKB #12

<html>
<body>
<p>Hello world</p>
</body>
</html>

Le mal absolu: pas de head, pas de XHTML, pas de meta, pas de titre et vive l'unicode. Alors soyons fou utilisons la balise blink

Mon "Hello World" en HTML donc:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>Hello World</title>
</head>
<body>
 <blink>Hello World</blink>
</body>
</html>

T'as beau être tatillon ton code est invalide. L'entête xml pètera sous une majorité de navigateurs, et blink n'est pas dans la dtd xhtml 1.0+

<!DOCTYPE html>
<html>
   <head>
       <meta charset="utf-8" />
       <title>Hello World</title>
   </head>
   <body>
       <p>Hello World</p>
   </body>
</html>

Sinon

Haskell

main = putStrLn "Hello World!"

Lien vers le commentaire
Partager sur d’autres sites

EN HTML:

MAKB #12

<html>
<body>
<p>Hello world</p>
</body>
</html>

Le mal absolu: pas de head, pas de XHTML, pas de meta, pas de titre et vive l'unicode. Alors soyons fou utilisons la balise blink

T'as beau être tatillon ton code est invalide. L'entête xml pètera sous une majorité de navigateurs, et blink n'est pas dans la dtd xhtml 1.0+

Bande de petits joueurs.

Voila le hello world le plus compact, crade et 100% valide que l'on peut écrire ! :8

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><title>Hello World</title><p>Hello World

C'est même futur-proof et compatible html 5 ! :yes:

<!DOCTYPE html><title>Hello World</title><p>Hello World

Lien vers le commentaire
Partager sur d’autres sites

Bande de petits joueurs.

Voila le hello world le plus compact, crade et 100% valide que l'on peut écrire ! :8

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><title>Hello World</title><p>Hello World

C'est même futur-proof et compatible html 5 ! :yes:

<!DOCTYPE html><title>Hello World</title><p>Hello World

C'était pas non plus le but sucre.gif

Dans le genre t'as ça sinon :

http://annevankesteren.nl

Lien vers le commentaire
Partager sur d’autres sites

Je vois pas le rapport entre le blog d'Anne (que j'ai toujours trouvé très mauvais par ailleurs) et mon poste.

A moins peut être que tu fasse référence à cet article de janvier : "http://annevankesteren.nl/2010/01/optimizing-html"

Qui a provoqué chez moi de violentes éruptions incontrolées de jet de vomi consécutives à sa lecture ?  :transpi:

Lien vers le commentaire
Partager sur d’autres sites

Je vois pas le rapport entre le blog d'Anne (que j'ai toujours trouvé très mauvais par ailleurs) et mon poste.

A moins peut être que tu fasse référence à cet article de janvier : "http://annevankesteren.nl/2010/01/optimizing-html"

Qui a provoqué chez moi de violentes éruptions incontrolées de jet de vomi consécutives à sa lecture ? :transpi:

Le code source
Lien vers le commentaire
Partager sur d’autres sites

Mon "Hello World" en HTML donc:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>Hello World</title>
</head>
<body>
 <blink>Hello World</blink>
</body>
</html>

T'as beau être tatillon ton code est invalide. L'entête xml pètera sous une majorité de navigateurs, et blink n'est pas dans la dtd xhtml 1.0+

<!DOCTYPE html>
<html>
   <head>
       <meta charset="utf-8" />
       <title>Hello World</title>
   </head>
   <body>
       <p>Hello World</p>
   </body>
</html>

  • Pour la balise blink, j'avais précisé: "Alors soyons fou utilisons la balise blink". Il y a eu un article sur Internet qui disait que la balise blink en HTML était l'équivalent de la commande GOTO.
  • Si mon code HTML n'est pas reconnu par les navigateurs, c'est parce qu'il est strict: il faut le mettre en transitional
    "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">"
  • Tu m'étonnes que le mode strict ne soit pas reconnu: Firefox est tellement une m*r*d puante. Un exemple: une recommandation concise à mettre le script dans l'entête dans une balise "<![CDATA[]]]]><![CDATA[>]]>". Devines quoi. Firefox lui ignore cette balise :fumer:
  • Ta balise "<!DOCTYPE html>" sert à que dalle: :transpi:

PS: Il ne faut pas utiliser la commande GOTO à cause de l'initialisation et la destruction des objets (comme le changement de contexte). à part ce gros truc, il n'y a rien d'autre.

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Hello world,

je suis Michel ( pour commencer)

bravo pour votre " Hello World".

Les langages que vous utilisez sont d'une découverte pour moi surprenante.

Hello world, en papou, en swahili, ou plus proche espagnol ou flamand.

J'ai été surpris de découvrir ces formes hiérogliphales apparemment très bien maitrisées par vous

que dire : félicitations world, ou hello bravo !

pour ma part avec un petit blanc ( un MB blanc ) je suis à Paris et cherche à faire un site web.

si quelqu'un peut m'aider en se rencontrant et me montrant comment faire

j'ai déjà préparé avec i-web,

mais pour la validation, l'inscription le référencement ....

la mise en ligne....

ce serait super sympa de partager votre grande culture dans ce domaine, merci d'avance

et de tout coeur " Hello World "

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...
  • 2 mois après...
  • 1 mois après...
  • 2 mois après...

C'est un peu du déterrage de topic mais en C++, c'est plutôt :

#include <iostream>
std::size_t main(int argc, char* argv[])
{
std::cout << "Hello World" << std::endl;
return 0;
}

Si c'est déjà posté je m'en excuse mais sa fait mal aux yeux le <iostream.h> et le raccourci au main.

Modifié par adamhet
Lien vers le commentaire
Partager sur d’autres sites

C'est un peu du déterrage de topic mais en C++, c'est plutôt :

#include <iostream>
int main(int argc, char* argv[])
{
std::cout << "Hello World" << std::endl
return 0;
}

Si c'est déjà posté je m'en excuse mais sa fait mal aux yeux le <iostream.h> et le raccourci au main.

Il manque un point virgule à la fin de std::endl: :transpi:

  1. stdio.h -> Pure C
  2. iostream.h -> STL en C
  3. iostream -> STL en C++
  4. cstdio -> C99

Et dans ce cas, remplaces (si tu peux) les int par des (std::)size_t

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.


×
×
  • Créer...