1 - Comment faire pour obtenir un programme en terminal (que l'on lance
depuis bash et qui n'a pas d'interface graphique)
qui s'ouvre comme
Mutt, ou Emacs, c'est à dire qui prend tout le terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
2 - Je voudrais enregistrer la saisie de l'utilisateur dans un buffer,
depuis une fonction void. scanf ne semble marcher que depuis main(*).
Comment puis-je faire ?
1 - Comment faire pour obtenir un programme en terminal (que l'on lance
depuis bash et qui n'a pas d'interface graphique)
qui s'ouvre comme
Mutt, ou Emacs, c'est à dire qui prend tout le terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
2 - Je voudrais enregistrer la saisie de l'utilisateur dans un buffer,
depuis une fonction void. scanf ne semble marcher que depuis main(*).
Comment puis-je faire ?
1 - Comment faire pour obtenir un programme en terminal (que l'on lance
depuis bash et qui n'a pas d'interface graphique)
qui s'ouvre comme
Mutt, ou Emacs, c'est à dire qui prend tout le terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
2 - Je voudrais enregistrer la saisie de l'utilisateur dans un buffer,
depuis une fonction void. scanf ne semble marcher que depuis main(*).
Comment puis-je faire ?
PaulK a écrit :1 - Comment faire pour obtenir un programme en terminal (que l'on
lance depuis bash et qui n'a pas d'interface graphique)
A la base, l'application ne sait pas ce qu'est un terminal pas plus
qu'une fenetre graphique. En revanche, des fichiers spéciaux sont
ouverts (stdin, stdout, stderr) qui permettent de communiquer avec
l'application appelante (en l'occurence, le terminal qui lance
l'application).qui s'ouvre comme Mutt, ou Emacs, c'est à dire qui prend tout le
terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
Ce sont des programmes qui utilisent des bibliothèques telles que
ncurses. Ces bibliothèques encapsulent la communication avec le
terminal, ce qui permet de contrôler l'affichage produit par le terminal.
ncurses requiert beaucoup de rigueur pour être utilisé, c'est pourquoi
je ne penses pas que tu devrais y jeter ton enthousiasme de débutant. :)
2 - Je voudrais enregistrer la saisie de l'utilisateur dans un buffer,
depuis une fonction void. scanf ne semble marcher que depuis main(*).
Comment puis-je faire ?
scanf est une fonction qui « fonctionne » depuis partout. Tu peux nous
donner un exemple de code ?
PaulK a écrit :
1 - Comment faire pour obtenir un programme en terminal (que l'on
lance depuis bash et qui n'a pas d'interface graphique)
A la base, l'application ne sait pas ce qu'est un terminal pas plus
qu'une fenetre graphique. En revanche, des fichiers spéciaux sont
ouverts (stdin, stdout, stderr) qui permettent de communiquer avec
l'application appelante (en l'occurence, le terminal qui lance
l'application).
qui s'ouvre comme Mutt, ou Emacs, c'est à dire qui prend tout le
terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
Ce sont des programmes qui utilisent des bibliothèques telles que
ncurses. Ces bibliothèques encapsulent la communication avec le
terminal, ce qui permet de contrôler l'affichage produit par le terminal.
ncurses requiert beaucoup de rigueur pour être utilisé, c'est pourquoi
je ne penses pas que tu devrais y jeter ton enthousiasme de débutant. :)
2 - Je voudrais enregistrer la saisie de l'utilisateur dans un buffer,
depuis une fonction void. scanf ne semble marcher que depuis main(*).
Comment puis-je faire ?
scanf est une fonction qui « fonctionne » depuis partout. Tu peux nous
donner un exemple de code ?
PaulK a écrit :1 - Comment faire pour obtenir un programme en terminal (que l'on
lance depuis bash et qui n'a pas d'interface graphique)
A la base, l'application ne sait pas ce qu'est un terminal pas plus
qu'une fenetre graphique. En revanche, des fichiers spéciaux sont
ouverts (stdin, stdout, stderr) qui permettent de communiquer avec
l'application appelante (en l'occurence, le terminal qui lance
l'application).qui s'ouvre comme Mutt, ou Emacs, c'est à dire qui prend tout le
terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
Ce sont des programmes qui utilisent des bibliothèques telles que
ncurses. Ces bibliothèques encapsulent la communication avec le
terminal, ce qui permet de contrôler l'affichage produit par le terminal.
ncurses requiert beaucoup de rigueur pour être utilisé, c'est pourquoi
je ne penses pas que tu devrais y jeter ton enthousiasme de débutant. :)
2 - Je voudrais enregistrer la saisie de l'utilisateur dans un buffer,
depuis une fonction void. scanf ne semble marcher que depuis main(*).
Comment puis-je faire ?
scanf est une fonction qui « fonctionne » depuis partout. Tu peux nous
donner un exemple de code ?
Mickaël Wolff a écrit :PaulK a écrit :1 - Comment faire pour obtenir un programme en terminal (que l'on
lance depuis bash et qui n'a pas d'interface graphique)
A la base, l'application ne sait pas ce qu'est un terminal pas plus
qu'une fenetre graphique. En revanche, des fichiers spéciaux sont
ouverts (stdin, stdout, stderr) qui permettent de communiquer avec
l'application appelante (en l'occurence, le terminal qui lance
l'application).qui s'ouvre comme Mutt, ou Emacs, c'est à dire qui prend tout le
terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
Ce sont des programmes qui utilisent des bibliothèques telles que
ncurses. Ces bibliothèques encapsulent la communication avec le
terminal, ce qui permet de contrôler l'affichage produit par le terminal.
ncurses requiert beaucoup de rigueur pour être utilisé, c'est pourquoi
je ne penses pas que tu devrais y jeter ton enthousiasme de débutant. :)
D'accord. Ce n'est pas grave.2 - Je voudrais enregistrer la saisie de l'utilisateur dans un
buffer, depuis une fonction void. scanf ne semble marcher que depuis
main(*).
Comment puis-je faire ?
scanf est une fonction qui « fonctionne » depuis partout. Tu peux nous
donner un exemple de code ?
Exemple :
#include <stdio.h>
#include <stdlib.h>
int input(void);
int main(void)
{
char abc;
scanf("%1c", &abc);
printf("scanf_main : %c", abc);
char abcde = input();
printf("scanf_input : %c", abcde);
return 0;
}
int input(void)
{
char inp = 0;
scanf("%1c", &inp);
return inp;
}
La fonction input ne me demande rien, j'ai, dans le terminal, le
résultat suivant :
:~/Documents/Programmation/lenombremystere/bash$ ./input
5
scanf_main : 5scanf_input : 0
:~/Documents/Programmation/lenombremystere/bash$
Sachant que j'ai rentré le premier 5 à la main et que pour le %c suivant
scanf_input, rien ne m'a été demandé (enchainement après l'entrée du 5) !
Mickaël Wolff a écrit :
PaulK a écrit :
1 - Comment faire pour obtenir un programme en terminal (que l'on
lance depuis bash et qui n'a pas d'interface graphique)
A la base, l'application ne sait pas ce qu'est un terminal pas plus
qu'une fenetre graphique. En revanche, des fichiers spéciaux sont
ouverts (stdin, stdout, stderr) qui permettent de communiquer avec
l'application appelante (en l'occurence, le terminal qui lance
l'application).
qui s'ouvre comme Mutt, ou Emacs, c'est à dire qui prend tout le
terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
Ce sont des programmes qui utilisent des bibliothèques telles que
ncurses. Ces bibliothèques encapsulent la communication avec le
terminal, ce qui permet de contrôler l'affichage produit par le terminal.
ncurses requiert beaucoup de rigueur pour être utilisé, c'est pourquoi
je ne penses pas que tu devrais y jeter ton enthousiasme de débutant. :)
D'accord. Ce n'est pas grave.
2 - Je voudrais enregistrer la saisie de l'utilisateur dans un
buffer, depuis une fonction void. scanf ne semble marcher que depuis
main(*).
Comment puis-je faire ?
scanf est une fonction qui « fonctionne » depuis partout. Tu peux nous
donner un exemple de code ?
Exemple :
#include <stdio.h>
#include <stdlib.h>
int input(void);
int main(void)
{
char abc;
scanf("%1c", &abc);
printf("scanf_main : %c", abc);
char abcde = input();
printf("scanf_input : %c", abcde);
return 0;
}
int input(void)
{
char inp = 0;
scanf("%1c", &inp);
return inp;
}
La fonction input ne me demande rien, j'ai, dans le terminal, le
résultat suivant :
paulk@paulk-desktop:~/Documents/Programmation/lenombremystere/bash$ ./input
5
scanf_main : 5scanf_input : 0
paulk@paulk-desktop:~/Documents/Programmation/lenombremystere/bash$
Sachant que j'ai rentré le premier 5 à la main et que pour le %c suivant
scanf_input, rien ne m'a été demandé (enchainement après l'entrée du 5) !
Mickaël Wolff a écrit :PaulK a écrit :1 - Comment faire pour obtenir un programme en terminal (que l'on
lance depuis bash et qui n'a pas d'interface graphique)
A la base, l'application ne sait pas ce qu'est un terminal pas plus
qu'une fenetre graphique. En revanche, des fichiers spéciaux sont
ouverts (stdin, stdout, stderr) qui permettent de communiquer avec
l'application appelante (en l'occurence, le terminal qui lance
l'application).qui s'ouvre comme Mutt, ou Emacs, c'est à dire qui prend tout le
terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
Ce sont des programmes qui utilisent des bibliothèques telles que
ncurses. Ces bibliothèques encapsulent la communication avec le
terminal, ce qui permet de contrôler l'affichage produit par le terminal.
ncurses requiert beaucoup de rigueur pour être utilisé, c'est pourquoi
je ne penses pas que tu devrais y jeter ton enthousiasme de débutant. :)
D'accord. Ce n'est pas grave.2 - Je voudrais enregistrer la saisie de l'utilisateur dans un
buffer, depuis une fonction void. scanf ne semble marcher que depuis
main(*).
Comment puis-je faire ?
scanf est une fonction qui « fonctionne » depuis partout. Tu peux nous
donner un exemple de code ?
Exemple :
#include <stdio.h>
#include <stdlib.h>
int input(void);
int main(void)
{
char abc;
scanf("%1c", &abc);
printf("scanf_main : %c", abc);
char abcde = input();
printf("scanf_input : %c", abcde);
return 0;
}
int input(void)
{
char inp = 0;
scanf("%1c", &inp);
return inp;
}
La fonction input ne me demande rien, j'ai, dans le terminal, le
résultat suivant :
:~/Documents/Programmation/lenombremystere/bash$ ./input
5
scanf_main : 5scanf_input : 0
:~/Documents/Programmation/lenombremystere/bash$
Sachant que j'ai rentré le premier 5 à la main et que pour le %c suivant
scanf_input, rien ne m'a été demandé (enchainement après l'entrée du 5) !
1 - Comment faire pour obtenir un programme en terminal (que l'on lance
depuis bash et qui n'a pas d'interface graphique) qui s'ouvre comme
Mutt, ou Emacs, c'est à dire qui prend tout le terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
2 - Je voudrais enregistrer la saisie de l'utilisateur dans un buffer,
depuis une fonction void. scanf ne semble marcher que depuis main(*).
1 - Comment faire pour obtenir un programme en terminal (que l'on lance
depuis bash et qui n'a pas d'interface graphique) qui s'ouvre comme
Mutt, ou Emacs, c'est à dire qui prend tout le terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
2 - Je voudrais enregistrer la saisie de l'utilisateur dans un buffer,
depuis une fonction void. scanf ne semble marcher que depuis main(*).
1 - Comment faire pour obtenir un programme en terminal (que l'on lance
depuis bash et qui n'a pas d'interface graphique) qui s'ouvre comme
Mutt, ou Emacs, c'est à dire qui prend tout le terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
2 - Je voudrais enregistrer la saisie de l'utilisateur dans un buffer,
depuis une fonction void. scanf ne semble marcher que depuis main(*).
1 - Comment faire pour obtenir un programme en terminal (que l'on lance
depuis bash et qui n'a pas d'interface graphique) qui s'ouvre comme
Mutt, ou Emacs, c'est à dire qui prend tout le terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
1 - Comment faire pour obtenir un programme en terminal (que l'on lance
depuis bash et qui n'a pas d'interface graphique) qui s'ouvre comme
Mutt, ou Emacs, c'est à dire qui prend tout le terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
1 - Comment faire pour obtenir un programme en terminal (que l'on lance
depuis bash et qui n'a pas d'interface graphique) qui s'ouvre comme
Mutt, ou Emacs, c'est à dire qui prend tout le terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
Le 17/12/2009 20:46, PaulK a écrit :Mickaël Wolff a écrit :PaulK a écrit :1 - Comment faire pour obtenir un programme en terminal (que l'on
lance depuis bash et qui n'a pas d'interface graphique)
A la base, l'application ne sait pas ce qu'est un terminal pas plus
qu'une fenetre graphique. En revanche, des fichiers spéciaux sont
ouverts (stdin, stdout, stderr) qui permettent de communiquer avec
l'application appelante (en l'occurence, le terminal qui lance
l'application).qui s'ouvre comme Mutt, ou Emacs, c'est à dire qui prend tout le
terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
Ce sont des programmes qui utilisent des bibliothèques telles que
ncurses. Ces bibliothèques encapsulent la communication avec le
terminal, ce qui permet de contrôler l'affichage produit par le
terminal.
ncurses requiert beaucoup de rigueur pour être utilisé, c'est pourquoi
je ne penses pas que tu devrais y jeter ton enthousiasme de débutant. :)
D'accord. Ce n'est pas grave.2 - Je voudrais enregistrer la saisie de l'utilisateur dans un
buffer, depuis une fonction void. scanf ne semble marcher que depuis
main(*).
Comment puis-je faire ?
scanf est une fonction qui « fonctionne » depuis partout. Tu peux nous
donner un exemple de code ?
Exemple :
#include <stdio.h>
#include <stdlib.h>
int input(void);
int main(void)
{
char abc;
scanf("%1c", &abc);
printf("scanf_main : %c", abc);
char abcde = input();
printf("scanf_input : %c", abcde);
return 0;
}
int input(void)
{
char inp = 0;
scanf("%1c", &inp);
return inp;
}
La fonction input ne me demande rien, j'ai, dans le terminal, le
résultat suivant :
:~/Documents/Programmation/lenombremystere/bash$
./input
5
scanf_main : 5scanf_input : 0
:~/Documents/Programmation/lenombremystere/bash$
Je parie que cette sortie est fausse (ce n'est pas ce que t'on programme
a affiché).
Soit tu as tapé 50[entrée] et l'affichage est :
:~/Documents/Programmation/lenombremystere/bash$ ./input
50
scanf_main : 5scanf_input :
:~/Documents/Programmation/lenombremystere/bash$
soit tu as tapé 5[entrée] et l'affichage est :
:~/Documents/Programmation/lenombremystere/bash$ ./input
5
scanf_main : 5scanf_input :
:~/Documents/Programmation/lenombremystere/bash$
Mais dans tous les cas ton programme ne peut afficher à la fois un 0 non
saisi et un retour à la ligne.Sachant que j'ai rentré le premier 5 à la main et que pour le %c suivant
scanf_input, rien ne m'a été demandé (enchainement après l'entrée du 5) !
Non, tu as entré 5 et un retour à la ligne, soit deux caractères, les
deux scanf fonctionnent comme attendu et lisent les deux caractères.
Le 17/12/2009 20:46, PaulK a écrit :
Mickaël Wolff a écrit :
PaulK a écrit :
1 - Comment faire pour obtenir un programme en terminal (que l'on
lance depuis bash et qui n'a pas d'interface graphique)
A la base, l'application ne sait pas ce qu'est un terminal pas plus
qu'une fenetre graphique. En revanche, des fichiers spéciaux sont
ouverts (stdin, stdout, stderr) qui permettent de communiquer avec
l'application appelante (en l'occurence, le terminal qui lance
l'application).
qui s'ouvre comme Mutt, ou Emacs, c'est à dire qui prend tout le
terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
Ce sont des programmes qui utilisent des bibliothèques telles que
ncurses. Ces bibliothèques encapsulent la communication avec le
terminal, ce qui permet de contrôler l'affichage produit par le
terminal.
ncurses requiert beaucoup de rigueur pour être utilisé, c'est pourquoi
je ne penses pas que tu devrais y jeter ton enthousiasme de débutant. :)
D'accord. Ce n'est pas grave.
2 - Je voudrais enregistrer la saisie de l'utilisateur dans un
buffer, depuis une fonction void. scanf ne semble marcher que depuis
main(*).
Comment puis-je faire ?
scanf est une fonction qui « fonctionne » depuis partout. Tu peux nous
donner un exemple de code ?
Exemple :
#include <stdio.h>
#include <stdlib.h>
int input(void);
int main(void)
{
char abc;
scanf("%1c", &abc);
printf("scanf_main : %c", abc);
char abcde = input();
printf("scanf_input : %c", abcde);
return 0;
}
int input(void)
{
char inp = 0;
scanf("%1c", &inp);
return inp;
}
La fonction input ne me demande rien, j'ai, dans le terminal, le
résultat suivant :
paulk@paulk-desktop:~/Documents/Programmation/lenombremystere/bash$
./input
5
scanf_main : 5scanf_input : 0
paulk@paulk-desktop:~/Documents/Programmation/lenombremystere/bash$
Je parie que cette sortie est fausse (ce n'est pas ce que t'on programme
a affiché).
Soit tu as tapé 50[entrée] et l'affichage est :
paulk@paulk-desktop:~/Documents/Programmation/lenombremystere/bash$ ./input
50
scanf_main : 5scanf_input :
0paulk@paulk-desktop:~/Documents/Programmation/lenombremystere/bash$
soit tu as tapé 5[entrée] et l'affichage est :
paulk@paulk-desktop:~/Documents/Programmation/lenombremystere/bash$ ./input
5
scanf_main : 5scanf_input :
paulk@paulk-desktop:~/Documents/Programmation/lenombremystere/bash$
Mais dans tous les cas ton programme ne peut afficher à la fois un 0 non
saisi et un retour à la ligne.
Sachant que j'ai rentré le premier 5 à la main et que pour le %c suivant
scanf_input, rien ne m'a été demandé (enchainement après l'entrée du 5) !
Non, tu as entré 5 et un retour à la ligne, soit deux caractères, les
deux scanf fonctionnent comme attendu et lisent les deux caractères.
Le 17/12/2009 20:46, PaulK a écrit :Mickaël Wolff a écrit :PaulK a écrit :1 - Comment faire pour obtenir un programme en terminal (que l'on
lance depuis bash et qui n'a pas d'interface graphique)
A la base, l'application ne sait pas ce qu'est un terminal pas plus
qu'une fenetre graphique. En revanche, des fichiers spéciaux sont
ouverts (stdin, stdout, stderr) qui permettent de communiquer avec
l'application appelante (en l'occurence, le terminal qui lance
l'application).qui s'ouvre comme Mutt, ou Emacs, c'est à dire qui prend tout le
terminal quand on l'ouvre
et ce jusqu'à ce que l'on le ferme.
Ce sont des programmes qui utilisent des bibliothèques telles que
ncurses. Ces bibliothèques encapsulent la communication avec le
terminal, ce qui permet de contrôler l'affichage produit par le
terminal.
ncurses requiert beaucoup de rigueur pour être utilisé, c'est pourquoi
je ne penses pas que tu devrais y jeter ton enthousiasme de débutant. :)
D'accord. Ce n'est pas grave.2 - Je voudrais enregistrer la saisie de l'utilisateur dans un
buffer, depuis une fonction void. scanf ne semble marcher que depuis
main(*).
Comment puis-je faire ?
scanf est une fonction qui « fonctionne » depuis partout. Tu peux nous
donner un exemple de code ?
Exemple :
#include <stdio.h>
#include <stdlib.h>
int input(void);
int main(void)
{
char abc;
scanf("%1c", &abc);
printf("scanf_main : %c", abc);
char abcde = input();
printf("scanf_input : %c", abcde);
return 0;
}
int input(void)
{
char inp = 0;
scanf("%1c", &inp);
return inp;
}
La fonction input ne me demande rien, j'ai, dans le terminal, le
résultat suivant :
:~/Documents/Programmation/lenombremystere/bash$
./input
5
scanf_main : 5scanf_input : 0
:~/Documents/Programmation/lenombremystere/bash$
Je parie que cette sortie est fausse (ce n'est pas ce que t'on programme
a affiché).
Soit tu as tapé 50[entrée] et l'affichage est :
:~/Documents/Programmation/lenombremystere/bash$ ./input
50
scanf_main : 5scanf_input :
:~/Documents/Programmation/lenombremystere/bash$
soit tu as tapé 5[entrée] et l'affichage est :
:~/Documents/Programmation/lenombremystere/bash$ ./input
5
scanf_main : 5scanf_input :
:~/Documents/Programmation/lenombremystere/bash$
Mais dans tous les cas ton programme ne peut afficher à la fois un 0 non
saisi et un retour à la ligne.Sachant que j'ai rentré le premier 5 à la main et que pour le %c suivant
scanf_input, rien ne m'a été demandé (enchainement après l'entrée du 5) !
Non, tu as entré 5 et un retour à la ligne, soit deux caractères, les
deux scanf fonctionnent comme attendu et lisent les deux caractères.