69 votes

Séquence d'évasion \f - flux de formulaires - qu'est-ce que c'est exactement ?

\f est dit être l'aliment de forme. \t est un onglet, \a est un bip, \n est un saut de ligne. Qu'est-ce qu'un fil de formulaire ? \f ? Le programme suivant

#include <iostream>
int main()
{
   std::cout << "hello\fgoodbye" << std::endl;  
}

imprime hello alors un signe féminin (une tête en bas grenade à main sacrée :) et ensuite goodbye sur une seule ligne.

0 votes

Dans le terminal GNOME et xterm il donne une nouvelle ligne + espace. Est-ce que isspace('\f') est vrai pour vous ?

0 votes

@larsmans : En fait, étrangement, c'est hace retourne vrai mais imprime quand même le signe féminin :)

1 votes

Peut-être que lorsqu'il est envoyé à une très vieille imprimante \f force un flux de formulaires ?

47voto

Charles Bailey Points 244082

Il passe au début de la page suivante. (S'applique surtout aux terminaux où le périphérique de sortie est une imprimante plutôt qu'un VDU).

45 votes

Vérifiez que votre coupleur acoustique est correctement positionné et que votre marguerite est alignée.

5 votes

@Tim Robinson, mon cerveau imagine des sons que je n'ai pas entendus depuis presque 20 ans. Merci beaucoup :-(

2 votes

VDU signifie "Visual Display Unit", par exemple un moniteur.

34voto

Vladimir Points 110327

Desde page du wiki

12 (form feed, \f , ^L), pour provoquer une imprimante à éjecter le papier en haut de la la page suivante, ou un terminal vidéo à l'écran.

ou plus de détails ici .

Il semble que ce symbole soit plutôt obsolète maintenant et la façon dont il est traité peut dépendre ( ?) de l'implémentation. Au moins pour moi, votre code donne la sortie suivante (xcode gcc 4.2, console gdb) :

hello
    goodbye

8 votes

Il est dépendant de l'implémentation dans le sens où la manière dont il est traité dépend de l'application ou de l'appareil qui le reçoit, et non du programme C++, qui doit simplement l'écrire dans le flux approprié.

0 votes

Il n'est pas vraiment obsolète, car il existe encore des circonstances où vous écrirez de l'ASCII (étendu) directement sur une imprimante, par exemple lorsque vous utilisez des imprimantes de reçus. En revanche, vous n'aurez pas besoin de l'utiliser dans un terminal.

15voto

Tim Robinson Points 28696

Si vous programmiez une imprimante des années 80, elle éjecterait le papier et commencerait une nouvelle page. Il est pratiquement certain que vous n'en aurez jamais besoin.

http://en.wikipedia.org/wiki/Form_feed

1 votes

^L formfeed est utilisé jusqu'à ce jour comme séparateur de section dans les fichiers de texte brut, tels que le code source des langages de programmation informatique. Lorsqu'un fichier texte devient long et que les 568 premières lignes, par exemple, sont d'un certain type et que les 729 lignes suivantes sont d'un autre type, on place souvent un caractère ^L formfeed au début de la ligne 569, ce qui donne souvent au caractère ^L formfeed sa propre ligne. Parfois, la tabulation verticale ^K et le ^L sont utilisés ensemble dans ce schéma de séparation de sections, le ^K séparant les sections mineures et le ^L les sections majeures.

9voto

Roddy Points 32503

Il vient de l'époque de Imprimantes de ligne et à rayures vertes papier accordéon .

Crois-moi, tu n'en auras pas besoin...

3voto

jv110 Points 292

Bien que son utilisation récente soit indéfinie, une utilisation courante et utile du flux de formulaire est de séparer verticalement les sections de code, comme ceci : enter image description here (de http://ergoemacs.org/emacs/emacs_form_feed_section_paging.html )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X