[C]programme conjugaison 3 groupes

pomporo -  
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   -
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 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
En général on fait plutôt un scanf, non ?

Bonne chance
1