boujour a tous ;
j emerai savoir si il y a une instruction en C qui permet de faire pause a l execution du programme et de relancer apres avce un retour chriot
merci.
boujour a tous ;
j emerai savoir si il y a une instruction en C qui permet de faire pause a l execution du programme et de relancer apres avce un retour chriot
merci.
Cela dépend vraiment de ce qu'il y a dans le reste du code :Envoyé par Kirou
- Gestion des signaux
- Utilisation de threads, fork, tubes
- Utilisation de time, clock
Si le programme utilise ces éléments, un arrêt du programme est plus difficile à programmer.
Jc
en faite c juste pour savoir si il rentre bein dans une fonction.....rien de special
voici mon programme je dois le executer sur scilab
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 #include </usr/lib/scilab-4.1/routines/scicos/scicos_block.h> #include <math.h> #include <stdio.h> void MDC(scicos_block *block,int flag) { double Res,L,B,J,Cont1,Cont2,V,I,Wr,Tl; if (flag == 1) { *******pause****** c est ici je veux faire pause block->outptr[0][0]=block->x[0]; //block->outptr[0][1]=block->x[1]; } else if (flag == 0) { I=block->x[0]; Wr=block->x[1]; Tl=block->x[2]; V=block->inptr[0][0]; Tl=block->inptr[0][1]; Res=block->rpar[0]; L=block->rpar[1]; B=block->rpar[2]; J=block->rpar[3]; Cont1=block->rpar[4]; Cont2=block->rpar[5]; block->xd[0]=(1/L)*(V-Res*I-Cont1*I*Wr); block->xd[1]=(1/J)*(Cont2*I*I-Tl-B*Wr); block->xd[2]=0; } //else if (flag==2) //{ //block->x[0]=block->xd[0]; //block->x[1]=block->xd[1]; //block->x[2]=block->xd[2]; //} return; }
Alors tu peux faire ceci :
Jc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 if (flag == 1) { char buf[128]; printf("En pause\n"); if(fgets(buf,sizeof(buf),stdin) == NULL) { fprintf(stderr, "Probleme grave\n"); /*Gestion de l'erreur comme tu veux */ } block->outptr[0][0]=block->x[0]; //block->outptr[0][1]=block->x[1]; }
Ce scilab, c'est ça ?Envoyé par Kirou
http://www.scilab.org/doc/Scilabpratique/index.html
Je ne connais pas, mais à vue de nez, c'est interpréteur de commandes. Quel rapport avec le langage C ? Serait-ce un interpréteur de pseudo-C ? Il n'a pas de commande qui se comporte comme une pause ?Envoyé par Kirou
il ya pas autre chose que de faire un printf preceque ca marche pas vue qu il s execute sur scilab
Salut,
Pour faire une pause et attendre l'appui de <entree>, j'utiliserais tout simplement getchar() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include <stdio.h> /* attente de saisie */ int c = getchar(); /* vidage du flux d'entree standard au cas ou plus d'un caractere a ete entre */ if(c != '\n' && c != EOF) { while((c = getchar()) != '\n' && c != EOF); }
Salut,
Je crois qu'il y a aussi la fonction sleep(x) qui attend x secondes avant de poursuivre le programme et la fonction usleep(x) qui attend x microsecondes avant de poursuivre.
Qu'est-ce qui ne fonctionne pas ?
Des détails seraient les bienvenus.
en faite mon travail consiste a faire la simulation dinamique d'un moteur a courant continue en utilisant le logiciel Scilab et pour ce afire je dois ecrire la fonction qui simule le moteur en C et c'est Scilab qui s'encharge a executer cette fonction mais d apres ce que j'ai remarquer c'es que Scilaba ne prend pas en consideration les instructionx de type entree/sortie(prnitf, getchar...
c ca le problem............
Tu as system("PASUE") sous windows sinon (ne marche pas sous linux il me semble)...
c'est quoi ce syteme "PASUE" et il sert a quoi?
moi je travail sous Kubuntu(Linux)
j'ai un petit code qui fait ça, de manière portable.. Je vais chercher ça.. Et du coup tiens je le mettrais peut-être dans contribuez...
Et getchar(), il ne fonctionne pas ?Envoyé par Kirou
Partager