bonjour,
Je voudrai savoir si il y a un moyen de vider le buffer en ada, j'ai un petit problème quand je fais une succession de get_line et get.
voilà un petit exemple:
with Text_Io,ada.Integer_text_Io,ada.Strings.Unbounded;
use Text_Io,ada.Integer_text_Io,ada.Strings.Unbounded;
procedure Principale is
procedure Lire is
Ch1,Ch2,ch3:String(1..100);
nb_car1,nb_car2,nb_car3:integer:=0;
Chx:Integer;
Unb1,unb2,unb3:Unbounded_String:=null_unbounded_string;
begin
Put("chaine1:" );
Get_Line(Ch1,Nb_Car1);
Unb1:=To_Unbounded_String(Ch1(1..Nb_Car1));
put(to_string(unb1));
new_line(2);
Put("choix en entier:" );
Get(Chx);
new_line;
Put("chaine2:" );
Get_Line(Ch2,Nb_Car2);
Unb2:=To_Unbounded_String(Ch2(1..Nb_Car2));
put(to_string(unb2));
New_Line(2);
Put("chaine3:" );
Get_Line(Ch3,Nb_Car3);
Unb3:=To_Unbounded_String(Ch3(1..Nb_Car3));
put(to_string(unb3));
New_Line(2);
Put("chaine1:" );Put(to_string(unb1));new_line;
Put("chaine2:" );Put(to_string(unb2));new_line;
put("choix:" );put(chx,0);new_line;
Put("chaine3:" );Put(to_string(unb3));new_line;
end Lire;
--***************************************************************************
begin
lire;
end principale
J'obtient chaine1,chx mais ça saute l'instruction pour obtenir la chaine2 et après j'obtient correctement la chaine3, je pense qu'il s'agit d'un problème au niveau du buffer.
Le problème est que je voudrais aussi obtenir la chaine2.
Merci d'avance pour votre aide.