小编Hea*_*ece的帖子

有没有办法在Ada中格式化文本输出

有没有办法格式化输出的字符串?我正在尝试获得以下输出的漂亮视图

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秒内完成了它们......

string format text ada

7
推荐指数
1
解决办法
7951
查看次数

Ada 05问题:在记录向量中搜索特定元素?

我已经创建了一个将在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)

search record vector ada addressbook

2
推荐指数
1
解决办法
929
查看次数

Ada:如何在获取整数时管理Data_error异常

我试图让用户从菜单中选择一个模式

  1. 睡觉

现在我可以使用该调用获得整数输入

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

integer exception input ada

2
推荐指数
1
解决办法
4927
查看次数

标签 统计

ada ×3

addressbook ×1

exception ×1

format ×1

input ×1

integer ×1

record ×1

search ×1

string ×1

text ×1

vector ×1