[C] comen faire retour debu ac while(!feoef()
adam
-
adam -
adam -
bonjours, j'ai ecrit un programme qui detecte les palindromes mais je n'arrive pas a proposer un retour au debut si on veut entrer une autre phrase a tester.je souhaite utiliser while( ! feof(stdin)).voilamon programme si voussavezcomment faire merci de m'aider. merci.
#include <stdio.h>
#include <string.h>
main()
{
char TXT1[201];
char TXT2[201];
char TXT[201];
int I,J,a;
int L;
int AIDE;
int o,n;
printf("entrer une phrase ( max 201 caracteres ):\n");
gets(TXT1);
for ( L=0 ; TXT1[L] ; L++);
{
for (I=0,J=L-1 ; I<J ; I++,J--)
{
AIDE=TXT[I];
TXT[I]=TXT[J];
TXT[J]=AIDE;
}
if (strcmp(TXT1,TXT2)==0)
printf ("%s est un palindrome %s\n",TXT1,TXT2);
else
printf("%s n'est pas un palindrome %s\n",TXT1,TXT2);
}
printf ("voulez vous ecrire une autre phrase? o/n:",o,n);
gets(TXT);
}
#include <stdio.h>
#include <string.h>
main()
{
char TXT1[201];
char TXT2[201];
char TXT[201];
int I,J,a;
int L;
int AIDE;
int o,n;
printf("entrer une phrase ( max 201 caracteres ):\n");
gets(TXT1);
for ( L=0 ; TXT1[L] ; L++);
{
for (I=0,J=L-1 ; I<J ; I++,J--)
{
AIDE=TXT[I];
TXT[I]=TXT[J];
TXT[J]=AIDE;
}
if (strcmp(TXT1,TXT2)==0)
printf ("%s est un palindrome %s\n",TXT1,TXT2);
else
printf("%s n'est pas un palindrome %s\n",TXT1,TXT2);
}
printf ("voulez vous ecrire une autre phrase? o/n:",o,n);
gets(TXT);
}
A voir également:
- [C] comen faire retour debu ac while(!feoef()
- Retour à la ligne excel formule - Guide
- Retour à la ligne chatgpt - Forum PHP
- Comment faire retour sur mac - Forum MacOS
- 230v ac ✓ - Forum Audio
- Aller à la ligne lors de la rédaction d'un message ✓ - Forum MacOS
7 réponses
Salut,
essaye un truc comme ça
#include <stdio.h>
#include <string.h>
main()
{
char TXT1[201];
char TXT2[201];
char TXT[201];
char c = 'o';
int I,J,a;
int L;
int AIDE;
int o,n;
while (c == 'o') {
printf("entrer une phrase ( max 201 caracteres ):\n");
gets(TXT1);
for ( L=0 ; TXT1[L] ; L++);
{
for (I=0,J=L-1 ; I<J ; I++,J--)
{
AIDE=TXT[I];
TXT[I]=TXT[J];
TXT[J]=AIDE;
}
if (strcmp(TXT1,TXT2)==0)
printf("%s est un palindrome %s\n",TXT1,TXT2);
else
printf("%s n'est pas un palindrome %s\n",TXT1,TXT2);
}
printf("voulez vous ecrire une autre phrase? o/n:",o,n);
c = getch();
printf("\n");
}
}
essaye un truc comme ça
#include <stdio.h>
#include <string.h>
main()
{
char TXT1[201];
char TXT2[201];
char TXT[201];
char c = 'o';
int I,J,a;
int L;
int AIDE;
int o,n;
while (c == 'o') {
printf("entrer une phrase ( max 201 caracteres ):\n");
gets(TXT1);
for ( L=0 ; TXT1[L] ; L++);
{
for (I=0,J=L-1 ; I<J ; I++,J--)
{
AIDE=TXT[I];
TXT[I]=TXT[J];
TXT[J]=AIDE;
}
if (strcmp(TXT1,TXT2)==0)
printf("%s est un palindrome %s\n",TXT1,TXT2);
else
printf("%s n'est pas un palindrome %s\n",TXT1,TXT2);
}
printf("voulez vous ecrire une autre phrase? o/n:",o,n);
c = getch();
printf("\n");
}
}
adam
merci beaucoup mais ca ne marche pas dev c++ me dit que 'getch' undeclared( first use this fonction)
adam
en faite ce n'etait pas getch() mais getchar() au moins j'apprend des choses. ta boucle fonctionne bien meme trop bien car elle ne s'arrete plus pour que je puisse entree une nouvelle phrase. si tu as une idee elle sera la bien venu. merci beaucoup
Tu me dis que mon exemple ne fonction pas avec dev c++ ???
C'est sur ce compilateur que je l'ai écrit. En plus je l'ai testé avant de le poster.
Quelle est l'extension de ton fichier .c ou .cpp
Moi j'ai utilisé .c
C'est sur ce compilateur que je l'ai écrit. En plus je l'ai testé avant de le poster.
Quelle est l'extension de ton fichier .c ou .cpp
Moi j'ai utilisé .c
j'ai utiilsé .cpp mais maintenant ca fonctionne juste que quand je repond o il m'affiche tout d'un coup . donc je je tourne en rond( humour mauvais desole)
Ca fonctionne avec getch ou getchar ?
Sinon, qu'entends-tu par "il m'affiche tout d'un coup" ?
Sinon, qu'entends-tu par "il m'affiche tout d'un coup" ?
ca fonctionne avec getchar par contre mon ordi a bogger j'ai ete obliger de tout retaper . en tappant n a la fin il ne veu pas quiter sait tu pourquoi je te renvois le fichier en cpp
#include <stdio.h>
#include <string.h>
main()
{
char TXT1[201];
char TXT2[201];
char TXT[201];
char c = 'o';
int I,J;
int L;
int AIDE;
int o,n;
while (c == 'o')
{
printf("entrer une phrase ( max 201 caracteres ):\n");
gets(TXT1);
for ( L=0 ; TXT1[L] ; L++);
for (I=0,J=L-1 ; I<J ; I++,J--)
{
AIDE=TXT1[I];
TXT1[I]=TXT2[J];
TXT2[J]=AIDE;
}
if (strcmp(TXT1,TXT2)==0)
printf ("%s est un palindrome %s\n",TXT1,TXT2);
else
printf("%s n'est pas un palindrome %s\n",TXT1,TXT2);
printf("voulez vous ecrire une autre phrase? o/n:",o,n);
gets(TXT);
}
c = getchar();
printf("\n");
}
#include <stdio.h>
#include <string.h>
main()
{
char TXT1[201];
char TXT2[201];
char TXT[201];
char c = 'o';
int I,J;
int L;
int AIDE;
int o,n;
while (c == 'o')
{
printf("entrer une phrase ( max 201 caracteres ):\n");
gets(TXT1);
for ( L=0 ; TXT1[L] ; L++);
for (I=0,J=L-1 ; I<J ; I++,J--)
{
AIDE=TXT1[I];
TXT1[I]=TXT2[J];
TXT2[J]=AIDE;
}
if (strcmp(TXT1,TXT2)==0)
printf ("%s est un palindrome %s\n",TXT1,TXT2);
else
printf("%s n'est pas un palindrome %s\n",TXT1,TXT2);
printf("voulez vous ecrire une autre phrase? o/n:",o,n);
gets(TXT);
}
c = getchar();
printf("\n");
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je te conseil de reprendre mon exemple qui marche parfaitement mais en incluant la bibliothèque #include <conio.h> car la fonction getchar pose un problème de buffer. Si ma mémoire est bonne il garde la caractère \n dans le buffer. Il faut alors le purger. L'avantage de getch est qu'elle réagit dès qu'une touche est tapée contrairement à getchar ou tu peux saisir un nombre indéfini de caractères.
je ne peux rien faire de plus puisque ça marche chez moi sur Windows 2000 et Dev C++ 4.9.9.1 et toutes les options par défaut.
Quand j'appuie sur n, le programme quitte tout de suite.
C'est bien ce que tu veux non ?
Et non tu n'es pas chiante. J'aime bien aider les personnes qui veulent apprendre.
#include <stdio.h>
#include <string.h>
#include <conio.h>
main()
{
char TXT1[201];
char TXT2[201];
char TXT[201];
char c = 'o';
int I,J,a;
int L;
int AIDE;
int o,n;
while (c == 'o') {
printf("entrer une phrase ( max 201 caracteres ):\n");
gets(TXT1);
for ( L=0 ; TXT1[L] ; L++);
{
for (I=0,J=L-1 ; I<J ; I++,J--)
{
AIDE=TXT[I];
TXT[I]=TXT[J];
TXT[J]=AIDE;
}
if (strcmp(TXT1,TXT2)==0)
printf("%s est un palindrome %s\n",TXT1,TXT2);
else
printf("%s n'est pas un palindrome %s\n",TXT1,TXT2);
}
printf("voulez vous ecrire une autre phrase? o/n:",o,n);
c = getch();
printf("\n");
}
}
Quand j'appuie sur n, le programme quitte tout de suite.
C'est bien ce que tu veux non ?
Et non tu n'es pas chiante. J'aime bien aider les personnes qui veulent apprendre.
#include <stdio.h>
#include <string.h>
#include <conio.h>
main()
{
char TXT1[201];
char TXT2[201];
char TXT[201];
char c = 'o';
int I,J,a;
int L;
int AIDE;
int o,n;
while (c == 'o') {
printf("entrer une phrase ( max 201 caracteres ):\n");
gets(TXT1);
for ( L=0 ; TXT1[L] ; L++);
{
for (I=0,J=L-1 ; I<J ; I++,J--)
{
AIDE=TXT[I];
TXT[I]=TXT[J];
TXT[J]=AIDE;
}
if (strcmp(TXT1,TXT2)==0)
printf("%s est un palindrome %s\n",TXT1,TXT2);
else
printf("%s n'est pas un palindrome %s\n",TXT1,TXT2);
}
printf("voulez vous ecrire une autre phrase? o/n:",o,n);
c = getch();
printf("\n");
}
}
Salut,
je ne suis pas sûr que mon programme y soit pour quelque chose. Le truc que tu peux rajouter c'est :
memset(TXT, '\0', sizeof(TXT));
memset(TXT1, '\0', sizeof(TXT1));
memset(TXT2, '\0', sizeof(TXT2));
après printf("entrer une phrase ( max 201 caracteres ):\n"); histoire de réinitialiser tes buffer à chaque calcul de palindrome
Fais moi signe si tu es encore bloqué.
A+
je ne suis pas sûr que mon programme y soit pour quelque chose. Le truc que tu peux rajouter c'est :
memset(TXT, '\0', sizeof(TXT));
memset(TXT1, '\0', sizeof(TXT1));
memset(TXT2, '\0', sizeof(TXT2));
après printf("entrer une phrase ( max 201 caracteres ):\n"); histoire de réinitialiser tes buffer à chaque calcul de palindrome
Fais moi signe si tu es encore bloqué.
A+