Bonjour à tous,
J'utilise la redirection de fichier 'monprog < monfichier' pour lancer mon
programme (c'est une obligation).
Dans ce programme, j'utilise cin pour recuperer les données du fichier.
Est-il possible -- après avoir vidé le tampon de l'entrée standard -- de
capturer des données toujours avec cin, mais cette fois ci en provenance
directe du clavier ??
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fabien LE LEZ
On Wed, 26 Nov 2003 19:53:17 +0100, "Quentin" wrote:
Est-il possible -- après avoir vidé le tampon de l'entrée standard -- de capturer des données toujours avec cin, mais cette fois ci en provenance directe du clavier ?
Pour ton programme, le clavier n'existe plus (du moins en tant que flux), puisqu'il a été remplacé par un fichier par le système d'exploitation. J'entrevois deux solutions : - Demander à ton système d'exploitation de rajouter les entrées clavier à la fin du flux initial. Je ne sais pas si c'est possible, mais en tout cas ce n'est plus de la programmation, juste du paramétrage de l'OS. - Accéder directement au clavier, sans passer par les flux standard (ça ne répond pas vraiment à la question, puisque les données n'arrivent pas sur cin, mais bon...). Curses te permettra peut-être de faire ça tout en restant portable ; sinon, utilise les fonctions de l'API de ton OS (cf fr.comp.os.ms-windows.programmation pour MS-Windows).
-- ;-)
On Wed, 26 Nov 2003 19:53:17 +0100, "Quentin" <qsabah@wanadoo.fr>
wrote:
Est-il possible -- après avoir vidé le tampon de l'entrée standard -- de
capturer des données toujours avec cin, mais cette fois ci en provenance
directe du clavier ?
Pour ton programme, le clavier n'existe plus (du moins en tant que
flux), puisqu'il a été remplacé par un fichier par le système
d'exploitation.
J'entrevois deux solutions :
- Demander à ton système d'exploitation de rajouter les entrées
clavier à la fin du flux initial. Je ne sais pas si c'est possible,
mais en tout cas ce n'est plus de la programmation, juste du
paramétrage de l'OS.
- Accéder directement au clavier, sans passer par les flux
standard (ça ne répond pas vraiment à la question, puisque les données
n'arrivent pas sur cin, mais bon...). Curses te permettra peut-être de
faire ça tout en restant portable ; sinon, utilise les fonctions de
l'API de ton OS (cf fr.comp.os.ms-windows.programmation pour
MS-Windows).
On Wed, 26 Nov 2003 19:53:17 +0100, "Quentin" wrote:
Est-il possible -- après avoir vidé le tampon de l'entrée standard -- de capturer des données toujours avec cin, mais cette fois ci en provenance directe du clavier ?
Pour ton programme, le clavier n'existe plus (du moins en tant que flux), puisqu'il a été remplacé par un fichier par le système d'exploitation. J'entrevois deux solutions : - Demander à ton système d'exploitation de rajouter les entrées clavier à la fin du flux initial. Je ne sais pas si c'est possible, mais en tout cas ce n'est plus de la programmation, juste du paramétrage de l'OS. - Accéder directement au clavier, sans passer par les flux standard (ça ne répond pas vraiment à la question, puisque les données n'arrivent pas sur cin, mais bon...). Curses te permettra peut-être de faire ça tout en restant portable ; sinon, utilise les fonctions de l'API de ton OS (cf fr.comp.os.ms-windows.programmation pour MS-Windows).
-- ;-)
James Kanze
Fabien LE LEZ writes:
|> On Wed, 26 Nov 2003 19:53:17 +0100, "Quentin" |> wrote:
|> >Est-il possible -- après avoir vidé le tampon de l'entrée |> >standard -- de capturer des données toujours avec cin, mais |> >cette fois ci en provenance directe du clavier ?
|> Pour ton programme, le clavier n'existe plus (du moins en tant que |> flux), puisqu'il a été remplacé par un fichier par le |> système d'exploitation. |> J'entrevois deux solutions : |> - Demander à ton système d'exploitation de rajouter les |> entrées clavier à la fin du flux initial. Je ne sais pas si |> c'est possible, mais en tout cas ce n'est plus de la programmation, |> juste du paramétrage de l'OS. |> - Accéder directement au clavier, sans passer par les flux |> standard (ça ne répond pas vraiment à la question, puisque |> les données n'arrivent pas sur cin, mais bon...). Curses te |> permettra peut-être de faire ça tout en restant portable ; |> sinon, utilise les fonctions de l'API de ton OS (cf |> fr.comp.os.ms-windows.programmation pour MS-Windows).
Sous Unix, et je crois aussi sous Windows, il existe un nom de fichier qui représente le terminal associé au processus (à condition qu'il y en a). Ouvrir un ifstream sur ce fichier permet, en général, de lire le clavier.
Sous Unix, il s'appelle «@/dev/tty@». Sous MS-DOS, c'était « CONS: », ou quelque chose du genre -- je l'essaierai à tout hazard sous Windows. Sinon, effectivement, il faudrait démander dans un groupe spécifique à ton système d'exploitation.
Et quelque soit le système, n'oublie pas que tous les processus n'ont pas forceément un clavier associé ; que l'ouverture peut échouer, et qu'il faut que tu traites l'erreur.
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
Fabien LE LEZ <gramster@gramster.com> writes:
|> On Wed, 26 Nov 2003 19:53:17 +0100, "Quentin" <qsabah@wanadoo.fr>
|> wrote:
|> >Est-il possible -- après avoir vidé le tampon de l'entrée
|> >standard -- de capturer des données toujours avec cin, mais
|> >cette fois ci en provenance directe du clavier ?
|> Pour ton programme, le clavier n'existe plus (du moins en tant que
|> flux), puisqu'il a été remplacé par un fichier par le
|> système d'exploitation.
|> J'entrevois deux solutions :
|> - Demander à ton système d'exploitation de rajouter les
|> entrées clavier à la fin du flux initial. Je ne sais pas si
|> c'est possible, mais en tout cas ce n'est plus de la programmation,
|> juste du paramétrage de l'OS.
|> - Accéder directement au clavier, sans passer par les flux
|> standard (ça ne répond pas vraiment à la question, puisque
|> les données n'arrivent pas sur cin, mais bon...). Curses te
|> permettra peut-être de faire ça tout en restant portable ;
|> sinon, utilise les fonctions de l'API de ton OS (cf
|> fr.comp.os.ms-windows.programmation pour MS-Windows).
Sous Unix, et je crois aussi sous Windows, il existe un nom de fichier
qui représente le terminal associé au processus (à condition
qu'il y en a). Ouvrir un ifstream sur ce fichier permet, en
général, de lire le clavier.
Sous Unix, il s'appelle «@/dev/tty@». Sous MS-DOS, c'était «
CONS: », ou quelque chose du genre -- je l'essaierai à tout hazard
sous Windows. Sinon, effectivement, il faudrait démander dans un
groupe spécifique à ton système d'exploitation.
Et quelque soit le système, n'oublie pas que tous les processus n'ont
pas forceément un clavier associé ; que l'ouverture peut
échouer, et qu'il faut que tu traites l'erreur.
--
James Kanze mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
|> On Wed, 26 Nov 2003 19:53:17 +0100, "Quentin" |> wrote:
|> >Est-il possible -- après avoir vidé le tampon de l'entrée |> >standard -- de capturer des données toujours avec cin, mais |> >cette fois ci en provenance directe du clavier ?
|> Pour ton programme, le clavier n'existe plus (du moins en tant que |> flux), puisqu'il a été remplacé par un fichier par le |> système d'exploitation. |> J'entrevois deux solutions : |> - Demander à ton système d'exploitation de rajouter les |> entrées clavier à la fin du flux initial. Je ne sais pas si |> c'est possible, mais en tout cas ce n'est plus de la programmation, |> juste du paramétrage de l'OS. |> - Accéder directement au clavier, sans passer par les flux |> standard (ça ne répond pas vraiment à la question, puisque |> les données n'arrivent pas sur cin, mais bon...). Curses te |> permettra peut-être de faire ça tout en restant portable ; |> sinon, utilise les fonctions de l'API de ton OS (cf |> fr.comp.os.ms-windows.programmation pour MS-Windows).
Sous Unix, et je crois aussi sous Windows, il existe un nom de fichier qui représente le terminal associé au processus (à condition qu'il y en a). Ouvrir un ifstream sur ce fichier permet, en général, de lire le clavier.
Sous Unix, il s'appelle «@/dev/tty@». Sous MS-DOS, c'était « CONS: », ou quelque chose du genre -- je l'essaierai à tout hazard sous Windows. Sinon, effectivement, il faudrait démander dans un groupe spécifique à ton système d'exploitation.
Et quelque soit le système, n'oublie pas que tous les processus n'ont pas forceément un clavier associé ; que l'ouverture peut échouer, et qu'il faut que tu traites l'erreur.
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93