Rechercher : dans
Par :

Retour chariot en C

Dernière réponse le 14 mai 2008 à 22:27:07 neo24, le 14 mai 2008 à 15:50:08 
 Signaler ce message aux modérateurs

Bonjour, quelqu'un saurait comment quand l'utilisateur saisie une phrase et qu'il tape sur "Entree" ne pas fermer le programme en cours et juste revenir a la ligne.
La phrase est mise dans une chaîne de caractère en C mais je vous avouerais que n'ai absolument aucune idée de comment procéder.

Attention, je ne demande pas forcément la réponse mais au moins une ou plusieurs pistes ou un site ou je puisse trouver la réponse.

Merci d'avance.

Configuration: Windows XP
Firefox 2.0.0.14

Meilleures réponses pour « Retour chariot en C » dans :
Sed - Conversion retours chariots DOS (CRLF) / UNIX (LF) VoirConversion format de fichier DOS UNIX / UNIX DOS Préambule Ce qu'il faut savoir Conversion DOS vers UNIX Conversion UNIX vers DOS Préambule Il existe déjà des utilitaires (dos2unix et unix2dos) qui s'acquittent très bien ce...
Sed - Insérer des espacements VoirEspacement dans un fichier * Ajouter une ligne blanche après chaque phrase (ponctuée par un retour chariot) : sed G fichier.txt Ajouter une ligne blanche après chaque phrase (ponctuée par un retour chariot), sans tenir compte des lignes...
Code ASCII VoirLe codage des informations Le morse a été le premier codage à permettre une communication longue distance. C'est Samuel F.B.Morse qui l'a mis au point en 1844. Ce code est composé de points et de tirets (un codage binaire en quelque sorte...). Il...
Langage C - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
Javascript - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractère Une chaîne de caractère est, comme son nom l'indique, une suite de caractères. On la représente par la suite de caractères encadrée par des guillemets simples (') ou doubles ("), sachant que les deux types de...

1

mype, le 14 mai 2008 à 16:02:54

Tu pourrais posté aussi ton code pour qu'on voit mieux le probleme...

Répondre à mype

2

neo24, le 14 mai 2008 à 16:07:21

Le problème survient lors de la saisie de la description de l'intervention enfin si on peut appelé sa un problème car
tout ce passe bien mais le seul soucie vient quand je veut taper "Entree" la ca me ferme le programme alors que je veux juste faire un retour a la ligne.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
FILE * fichier = NULL;

int intervention[6],i;
int priorite[6],z=0;
char technicien[30],t=0;
char commentaire[10000];

fichier = fopen("beta.txt","a");
if(fichier != NULL){
for (i=0;i<3;i++)
{
printf("\nVeuillez saisir un numéro d'intervention :");
scanf("%d",&intervention[i]);
fprintf(fichier,"Numéro d'intervention : %d\n",intervention[i]);

printf("Veuillez saisir la priorité de cette intervention :");
scanf("%d",&priorite[z]);
fprintf(fichier,"Priorite de l'intervention : %d\n",priorite[z]);
z++;
getchar();
printf("Veuillez saisir le nom du technicien en charge :");
fgets(technicien,30,stdin);
fprintf(fichier,"Numéro du technicien : %d\nNom du technicien : %s",t,technicien);
t++;
printf("Description de l'intervention :\n"); <--------- Le problème est ici
fgets(commentaire,10000,stdin);

fprintf(fichier,"Description de l'intervention:\n %s\n\n",commentaire);

}
fclose(fichier);
}
else
printf("Impossible d'ouvrir le fichier");
return 0;
}

Répondre à neo24

3

mype, le 14 mai 2008 à 16:12:52

Rajoute

getchar();
apres
fprintf(fichier,"Description de l'intervention:\n %s\n\n",commentaire); 

Répondre à mype

4

Char Snipeur, le 14 mai 2008 à 16:38:37

Pour lire sans s'arréter au return, il faut utiliser une autre fonction que scanf(). getchar ou gets etc. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur

Répondre à Char Snipeur

5

neo24, le 14 mai 2008 à 17:05:39

Ok Char Snipeur mais alors peut-tu m'aiguiller sur une autre fonction que celle utilisé.

Ps : mype,j'ai essayé la fonction getchar() mais le problème c'est que maintenant je ne peut plus quitter et la ligne saisie aprés le retour a la ligne n'ai pas enregistré dans mon fichier beta.txt

Cordialement

Répondre à neo24

6

Char Snipeur, le 14 mai 2008 à 17:11:48

Hum, c'est pas si simple. Pour e répondre mieux, il faut que tu me dises : comment le programme sais si l'utilisateur a fini de taper tout ce qu'il avait à taper ?
Selon ta réponse, plusieurs stratégies sont possibles. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur

Répondre à Char Snipeur

7

mype, le 14 mai 2008 à 17:23:40

Ok je vois ce que tu veux faire mais je suis pas sur qu'une fonction de ce type existe deja en C ...sinon comment tu vas faire pour t'arreter de lire si tu ne peux pas t'arreter au retour chariot

ce que tu peux faire c'est au lieu de lire la phrase en entier tu lis caractere par caractere jusqu'a ce qu'un caractere precis soit tapés par exemple le point "." avec une boucle while le retour chariot sera pris en compte

Répondre à mype

8

neo24, le 14 mai 2008 à 17:26:26

Donc actuellement dès que l'utilisateur "landa" tape la description de l'intervention puis appuis sur entree, cela ferme le programme et l'enregistre dans un fichier nommé "beta.txt".
Aprés la manière dont je souhaiterai que l'utilisateur quitte le programme,j ai pas d'obligation.
La manière la plus simple sera la meilleur.

Répondre à neo24

9

mype, le 14 mai 2008 à 17:43:21

Declare

char c;
int j;

ensuite essaye ça
j=0;
while((c=fgetc(stdin))!='.')
{
commentaire[j]=c;
j++;
}
fprintf(fichier,"Description de l'intervention:\n %s\n\n",commentaire); 

Répondre à mype

10

 neo24, le 14 mai 2008 à 22:27:07

Merci beaucoup mype,
Ca marche du feu de dieu.

A chaque fois que j'ai eu une question a posé sur ce forum, on m'a répondu très vite et efficacement.
Au moins un forum où on peut trouver des réponses constructives


Merci a tous et tout particulièrement a mype.

Répondre à neo24
Collection CommentÇaMarche.net