[C]programme conjugaison 3 groupes

Fermé
pomporo - 23 mars 2006 à 18:07
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 23 mars 2006 à 21:28
Bonjour! j'essaye actuellement de faire un programme qui fasse les conjugaison de verbes.
Cependant je rencontre des erreurs. J'ai changé la fonction gets par fgets pour récupérer la valeur saisie mais je n'arrive pas à tester le retour. j'ai comme message d'erreur "undefined reference to flush". Si vous avez une idée merci!

int viregulier(char *input)
{
	FILE *fptr;
	int i=0;
	char buffer;
	char *extension=".txt";  
	char nomfichier[100];

	for(i=0;i<sizeof(irregulier)/sizeof(char*);i++)
	{
		if(strcmp(input,*(irregulier+i))==0)
		{
			strcpy(nomfichier,input);
			strcat(nomfichier,extension);
			printf("%s",nomfichier);
			if((fptr = fopen(nomfichier, "rt")) == NULL)		
			{
				printf("Désolé nous n'avons pas ce verbe");
				return 1;
			}			
			while((buffer = fgetc(fptr))!=EOF)
				putchar(buffer);
			fclose(fptr);			
			return 1;
		}		
	}	
	return 0;
};

 main()
{		
	
	char *er = "er";
	char *re = "re";
	char *ir = "ir";

	char input[200];
        char output[200];    
	const char **ptrconjugaison;	
	
	char *ptr; 
	char again = 0;
	int i=0,j=0;	

	while(again!='n' && again!='N')
	{
	  printf("\nChoisissez un verbe à conjuguer : ");

		if (fgets(input,sizeof input,stdin) != NULL)
                {
		   if(!viregulier(input))
		    {
			ptr = &input[strlen(input)-2];

			if(strcmp(ptr,er)==0)					
				ptrconjugaison = prem_conjugaison;
			else if(strcmp(ptr,re)==0)		
				ptrconjugaison = deux_conjugaison;
			else if(strcmp(ptr,ir)==0)
				ptrconjugaison = trois_conjugaison;
			else
			{			
			printf("Verbe incorrect");
			printf("\nChoisissez un autre verbe (N pour quitter) :");
				again = getchar();
				
			}				
            		
			printf("\nInfinitif  %s\n\n",ptr);
			
			input[strlen(input)-2]='\0';
			strcpy(output,input);
			printf("\nPresent :\n");
			for(j=0;j<6;j++)
				printf("%10s  %s\n",pronoms[j],input,*(ptrconjugaison++));
			printf("\nSubjonctif :\n");
			for(j=0;j<6;j++)
				printf("%10s  %s\n",pronoms[j],input,*(ptrconjugaison++));
			printf("\nFutur :\n");
			for(j=0;j<6;j++)
				printf("%10s  %s\n",pronoms[j],input,*(ptrconjugaison++));
			printf("\nConditionel  :\n");
			for(j=0;j<6;j++)
				printf("%10s  %s\n",pronoms[j],input,*(ptrconjugaison++));
			printf("\nImparfait :\n");
			for(j=0;j<6;j++)
				printf("%10s  %s\n",pronoms[j],input,*(ptrconjugaison++));
			printf("\nPasse  :\n");
			for(j=0;j<6;j++)
				printf("%10s  %s\n",pronoms[j],input,*(ptrconjugaison++));
			printf("\nImparfait du Subjonctif :\n");
			for(j=0;j<6;j++)
				printf("%10s  %s\n",pronoms[j],input,*(ptrconjugaison++));
			printf("\nParticipe Present :\n");
			for(j=0;j<4;j++)
				printf("%10s%s\n",input,*(ptrconjugaison++));
			printf("\nParticipe Passe :\n");
			for(j=0;j<4;j++)
				printf("%10s%s\n",input,*(ptrconjugaison++));
		}
		// =======================================		
		printf("\n\nSaisissez un verbe (N pour quitter) :");
		again = getchar();
		fflush(stdin);  
	}
     }
	printf("\nAu revoir!!\n\n");		
}
A voir également:

1 réponse

mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
23 mars 2006 à 21:28
En général on fait plutôt un scanf, non ?

Bonne chance
1