[Resolu]Get_line en début de programme

Get_line en début de programme [Resolu] - Ada - Programmation

Marsh Posté le 09-10-2015 à 09:09:39    

Bonjour,  
 
J'ai remarqué que lorsque j'utilise get_line dans une procédure,  à l'éxecution du programme le get_line est toujours demandé en 1er même si il est placé en condition(if then)
 
J'ai vu ceci : Ada.Text_IO.Set_Col (Ada.Text_IO.Standard_Input, 1)  ici : wikiget_line mais je ne comprends pas.
 
Comment faire pour ne plus avoir un get_line au début de l'éxecution d'un programme, mais à la place voulue ?


Message édité par eroge le 10-10-2015 à 05:49:12
Reply

Marsh Posté le 09-10-2015 à 09:09:39   

Reply

Marsh Posté le 09-10-2015 à 11:09:29    

Tu peux donner un exemple stp ?

Reply

Marsh Posté le 09-10-2015 à 12:45:39    

Par exemple :
 

Code :
  1. with ada.text_io;  use ada.text_io;
  2.  
  3. Procedure exemple is
  4.           
  5.      nom : string := ada.text_io.get_line ;
  6.      taille_chaine : Natural ;
  7.         
  8. Begin
  9.     put_line("choisissez un nom, en lettres de préférence" );
  10.     put(" :" ); get_line(nom,taille_chaine); skip_line ;
  11.         put("le nom choisis est : " ); put(nom);
  12.  
  13. end exemple ;


 
Aprés compilation, a l'éxecution put_line et put sont ignorés et  get_line est demandé en premier.

Reply

Marsh Posté le 09-10-2015 à 12:53:47    

Normal.
 
Tu as un Get_Line dans la partie déclarative de ton programme ; Celle ci étant élaboré avant de rentrer dans le corp du programme.
 

Reply

Marsh Posté le 09-10-2015 à 13:20:19    

Dans ce cas, je ne sais plus comment coder, je voudrais faire un get_line sur un string de taille inconnu(1er parametre).

Reply

Marsh Posté le 09-10-2015 à 13:40:34    

En reprenant ton code...

Code :
  1. with ada.text_io;  use ada.text_io;
  2.    
  3.    Procedure exemple is
  4.    begin
  5.  
  6.        put_line("choisissez un nom, en lettres de préférence" );
  7.        put(" :" );
  8.  
  9.        declare
  10.              nom : string := ada.text_io.get_line ;
  11.        begin
  12.              put("le nom choisis est : " ); put(nom);
  13.        exception
  14.              when Text_Io.End_Error =>
  15.                  null;
  16.        end;
  17.    
  18.    end exemple ;

Reply

Marsh Posté le 09-10-2015 à 13:49:37    

ah d'accord merci, jusqu'à maintenant je ne faisais pas de déclaration dans le corps du programme.  
Mais pourquoi il n'y a pas besoin de 2eme parametre pour get_line ?


Message édité par eroge le 09-10-2015 à 13:55:20
Reply

Marsh Posté le 09-10-2015 à 15:17:25    

Il n'y en a même aucun.
 
Lis Ada.Text_Io 2005 or later/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed