begin process at 2012 05 27 19:59:58
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Imprimante

 > IMPRIMER UN FICHIER

IMPRIMER UN FICHIER


 Information sur la source

Note :
Aucune note
Catégorie :Imprimante Niveau :Débutant Date de création :16/02/2004 Date de mise à jour :16/02/2004 19:20:35 Vu / téléchargé :17 711 / 483

Auteur : LordBob

Ecrire un message privé
Site perso
Commentaire sur cette source (22)
Ajouter un commentaire et/ou une note

 Description

Voila suite à une question sur le forum, j'ai decidé de mettre une source à la disposition de tout le monde... C'est une source permettant d'imprimer un fichier, le code utilise uniquement les fonction standard du C... Quelques explications sont disponible dans le paragraphe en dessous du code...

Source

  • #include <stdio.h>
  • #include <stdlib.h>
  • int main(int argc, char **argv)
  • {
  • FILE *fp;
  • int c;
  • if(argc != 2)
  • {
  • printf("Erreur de syntaxe\n");
  • exit(1);
  • }
  • if ((fp = fopen(argv[1], "r")) == NULL)
  • {
  • printf("Impossible d'ouvrir le fichier %s...\n", argv[1]);
  • exit(2);
  • }
  • while((c = fgetc(fp)) != EOF) // tant que l'on est pas arrivé à la fin du fichier
  • fputc(c, stdprn); // on imprime le fichier
  • return 0;
  • }
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
     FILE *fp;
     int c;

     if(argc != 2)
     {
          printf("Erreur de syntaxe\n");
          exit(1);
     }

     if ((fp = fopen(argv[1], "r")) == NULL)
     {
          printf("Impossible d'ouvrir le fichier %s...\n", argv[1]);
          exit(2);
     }

     while((c = fgetc(fp)) != EOF)  // tant que l'on est pas arrivé à la fin du fichier
          fputc(c, stdprn); // on imprime le fichier

     return 0;
}

 Conclusion

L'imprimante standard fait partie des fichiers speciaux rattachés aux périphérique de sortie. Pour y sortir des données, il suffit de transmettre à la fonction d'écriture compétante le pointer FILE  et stdprn comme paramètre à la fonction compétente (fptuc). Supposons que c soit une variable entière.

pour imprimer un fichier, on fait:
nomduprogramme nomdufichier.xxx

voila j'espère que ça vous sera utile et surtout que ça vous aura aidé !!!


ps: j'ai voulu distribuer un exe, seulement VS.NET 2003 refuse de me le compiler, je ne sais pas pourquoi... il ne reconnait pas "stdprn"... enfin normalement, ca devrait marché, c'est une fonction standard du C... si quelqu'un à la réponse !!!

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   tuto_impression

Télécharger le zip


 Sources du même auteur

Source avec Zip ENREGISTREMEN VIDEO WEBCAM [WIN32]
Source avec Zip LEDMAIL [WIN32]
Source avec Zip MULTICAM - GESTION DE PLUSIEURS WEBCAM
Source avec Zip ALGO BRUTE FORCE
Source avec Zip VIDEOCAPT - CREATION DE VIDEO

 Sources de la même categorie

Source avec Zip IMPRIMER UN TIMAGE par eagleseyes
Source avec Zip IMPRESSION D'UN EDITBOX AVEC MISE EN PAGE (DEVC++) par gagah1
Source avec Zip PROGRAMME SUR LES PILES ET LES FILES RELATIF A UNE KESTION P... par tagada_du_loft
IMPRESSION D'UN EDITBOX EN PLUSIEURS PAGES par cbestern
COMMENT UTILISER LES NOMBREUSES POSSIBILITES DU PRINTF par JCDjcd

Commentaires et avis

Commentaire de gloobing le 16/02/2004 21:02:11

J'ai testé ton algo sous Dev et verdict.. il ne fonctionne pas..

J'obtiens `stdprn' undeclared (first use in this function)

Je vais chercher.. C'est un truc que j'essaye de faire depuis longtemps !

Commentaire de LordBob le 17/02/2004 09:46:11

ouais je sais mais en theorie il devrait, peut etre que cela ne marche que avec des "vieux" compilateur DOS... il faudrait que je teste avec un compilateur comme Turbo C++... j'essairai ce soir...

Commentaire de blackrussian le 17/02/2004 17:51:00

2 questions de noOb, pourquoi exit() prend-t-il les valeurs 1 et 2?
Et double pointeur sur argv[] ça sert à quoi?
Sinon c'est sympa je cherchais la solution ces derniers jours car imprimer un fichier était une question de concours, merci beaucoup.

Commentaire de LordBob le 17/02/2004 18:49:10

pour exit(), je vais te repondre franchement "erreur de frappe" mais ca marche donc je peux pas te repondre... pour le double pointeur sur argv[], je peux pas te répondre, j'ai appris comme ca, mais il me semble que c'est pour le cas ou lorsque tu execute le programme en ligne de commande, tu peux mettre plusieurs parametres...

Commentaire de blackrussian le 17/02/2004 19:04:48

ok merci je note :)

Commentaire de Thaeron le 18/02/2004 10:07:02

Salut, j'ai testé aussi ton source sous Gnu/Linux avec GCC et effectivement il connais pas stdprn , j'ai fais un tit man stdprn qui a bien confirmé que ça n'existait pas; mais peut etre, comme t'a dis, avec un compilo moins recent sous DOS ça pourrai fonctionner.
En tout cas si tu trouve la solution, fais la nous partager.
Tsh@w et bon code =)

Commentaire de LordBob le 21/02/2004 10:50:21

voila je viens d'essayer de compiler ma source avec un 'vieux' compilateur DOS et effectivement, ca ma compile la source sans erreurs...

Commentaire de RazielMYTH le 26/03/2004 10:55:31

j'ai essaié avec une imprimante réseau et ca ne fonctionne pas?
est-ce de ma faute ou alors est ce normal?

Commentaire de LordBob le 26/03/2004 12:52:35

bah sous quel OS?

Commentaire de RazielMYTH le 27/03/2004 11:11:26

Je suis sous winXP et j'utilise le turbo C++.
En fait, le programme est compilé correctement mais une fois lancé, il y a un écran noir et rien ne se passe!
je n'arrive meme plus a rentrer sur le compilateur

Commentaire de LordBob le 27/03/2004 11:22:01

voila la commande ne marche pas sous XP, le programme ne marche que sur un MS-DOS

Commentaire de RazielMYTH le 27/03/2004 11:37:30

ha ok, c la guerre alors, j'ai plus qu'à installer un multi boot pour finir mon projet alors lol, merci quand meme,
si tu connais le moyen de faire tourner ça sous XP, pas necessairement avec cette commande, fait moi signe,
merci,

RazielMyth

Commentaire de victorcoasne le 21/03/2005 20:09:08

Vous n'avez pas compris que c'est une fonction C qui n'a pu lieu d'être en C++ donc c'est normal qu'un compilo C++ (normal et récent) ne compile pas !

Commentaire de LordBob le 22/03/2005 08:57:18

mais la plupart des compilateur C++ compile le C. D'ailleurs les deux langages ont des instructions commune !

Commentaire de victorcoasne le 22/03/2005 18:05:29

Oui mais il y a des fonctions C qui ne sont plus reconnu ou qui ont tout simplement changé de nom.

Commentaire de stegano le 16/10/2005 23:35:52

et si on met extern "C" avant?

Commentaire de Osiris84 le 09/11/2005 20:03:39

effectivement il génère une erreur à la compilation en c, disant qu'il ne connait pas stdprn avec sous windows et visualc++6, alors j'ai beau chercher mais je ne trouve pas de solution, d'ou vient le probleme, comment faire?

Commentaire de Osiris84 le 09/11/2005 20:30:21

voici une explication qui peut etre vous conviendra, elle est assez explicite, néanmoins avec turbo c++ cela marche, le probleme de l'ecran noir est du à l'OS qui pour imprimer à besoin d'ouvrir l'utilitaire d'impression, de traiter l'info, et de le fermer de la même manière qu'on l'a ouvert!
Explication en anglais:http://www.shadow-lands.com/sml/2002/msg01978.html

Commentaire de BruNews le 09/11/2005 21:03:25 administrateur CS

Il est tout à fait inutile de perdre du temps avec ce genre d'antiquité.
L'impression est traitée ici au chapitre 13:
http://brunews.free.fr/brunews/download/CP5.zip
http://brunews.free.fr/brunews/download/CP5Sources.zip

Commentaire de donald_lover le 20/02/2006 12:35:01

A propos du double pointeur, il permet de pointer vers une chaine de caractère et non un simple caractère. La chaine étant un "mot" passé sur la ligne de commande (y compris le nom de l'executable).

Commentaire de Startiflette le 30/04/2006 01:30:57

Bonjour,
comment, le programme fera-t-il pour savoir quel fichier imprimer? Moi, je l'ai exécuté et le seul resultat est : "Erreur de syntaxe"

Commentaire de BruNews le 30/04/2006 01:38:19 administrateur CS

Le nom du fichier est pris sur la ligne de commande:
fp = fopen(argv[1], ...
faudrait peut-être regarder le code, non ?

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales