有没有办法格式化输出的字符串?我正在尝试获得以下输出的漂亮视图
1: Ashley | 01033438392 | Wellington, New Zealand | 1987- 4-14
2: Aloha | 01087651234 | Hawaii, United States of America | 1988- 9-23
3: Jack | 01082840184 | Beijing, China | 1989- 6-19
Run Code Online (Sandbox Code Playgroud)
如果我用C语言编程,我会做类似的事情
printf("%10s | %11s | %20s | %4d-%2d-%2d\n",name,phone,address,year,month,day);
Run Code Online (Sandbox Code Playgroud)
在Ada 05中可以进行这种格式化吗?
PS请忽略姓名,电话号码,地址和生日.我在30秒内完成了它们......
我已经创建了一个将在GNAT Gcc编译器4.3.0中编译的Ada程序.我创建了一个包含姓名,电话,地址和生日的记录.名称,电话和地址将以无限字符串格式和生日记录另行记录.这里的目的是建立一个地址簿管理系统.(非常简单)
type birthday is record
year : Positive;
month : Positive;
day : positive;
end record;
type contact_type is record
name : unbounded_string;
phone : unbounded_string;
address : unbounded_string;
bday : birthday;
end record;
Run Code Online (Sandbox Code Playgroud)
我已经进行了插入(使用追加)和删除,以及列表功能.我需要一个搜索和排序功能来完成.
事情是我把这条记录(contact_type记录)变成了一个向量.现在我想从向量中搜索其中一个元素/子类(无论你怎么称呼它).
例如,搜索名称...或地址等.但是使用向量的find_index方法,我需要插入另一个类型为contact_type的记录,并且只返回完全相同的元素作为结果.
但我想要的是如果我搜索一个名字,所有带有名字的元素都会被返回......
并且有可能在名称,地址,Bday方面对"向量排序"向量(所以我有三种不同的排序选项)
PS.第一阿达程序我写是一个地址簿管理器...我一个完整的新手,我只在C的经验,和Java所以它还挺会粗糙...(我花了很长的时间寻找如何到标准输入和输出lol)
我试图让用户从菜单中选择一个模式
现在我可以使用该调用获得整数输入
ada.integer_text_io.get(integer_variable);
Run Code Online (Sandbox Code Playgroud)
这里的主要问题是,如果我插入非数字字符串(例如字符串),则会引发以下异常
raised ADA.IO_EXCEPTIONS.DATA_ERROR : a-tiinio.adb:89 instantiated at a-inteio.ads:18
Run Code Online (Sandbox Code Playgroud)
我已经尝试接收一个字符,检查它是否是一个整数,然后将其转换为整数,但后来我意识到我需要得到大于1位整数的输入,所以字符方法将无法工作.
如果我收到一个字符串,那么我无法检查它是否是一个整数(除非我扫描整个字符串以查看它的所有字符是否都是整数...)
除扫描整个字符串外还有其他解决方案吗?或者可能是一种异常处理技术,可能会阻止程序终止并再次询问正确的整数?
-CH