1

我正在使用 Ada 的目录库和 Command_Line 库,并读取命令行中给出的文本文件的字符数(大小),然后将其分配给一个整数。

Character_Count := Size(Argument(1));

编译器告诉我 Integer 和 File_Size 不匹配,即使 File_Size 是 Integer 的子类型,我很确定。我怎样才能转换它?

4

1 回答 1

3

Ada.Directories.File_Size不是子类型Integer

它在语言参考手册中定义为:

type File_Size is range 0 .. *implementation-defined*;

如果您考虑一下,将其作为子类型没有多大意义。Integer可以窄到 16 位,这几乎不足以容纳任意文件的大小。

您可以使用转换来转换为整数:

Character_Count := Integer(Size(Argument(1)));

Character_Count但首先声明为 a可能会好得多File_Size

于 2013-02-26T01:19:05.760 回答