首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最大线长Ada.Text_IO.Put_Line

最大线长Ada.Text_IO.Put_Line
EN

Stack Overflow用户
提问于 2022-07-05 11:01:28
回答 1查看 138关注 0票数 0

我使用GNATColl创建SQL查询。我考虑使用"To_String“方法对生成的SQL代码执行可视化检查,但是当我调用Ada.Text_IO.Put_Line或Ada.Text_IO.Put来查看string时,将向输出中添加回车。

例如,如果我期望:

代码语言:javascript
复制
SELECT orders.order_id, customers.last_name FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id WHERE orders.order_id <> 1 ORDER BY orders.order_id;

在Put_ line /Put之后我得到了什么(注意customers.cust CRLF omer_id上的行中断):

代码语言:javascript
复制
SELECT orders.order_id, customers.last_name FROM orders INNER JOIN customers ON orders.customer_id = customers.cust
omer_id WHERE orders.order_id <> 1 ORDER BY orders.order_id;

我最初怀疑回车是由于GNATColl错误造成的,但现在我怀疑过程Ada.Text_IO.Put_Line有一个最大行长可打印。我说的对吗?

我尝试了"Ada.Text_IO.Set_Line_Length“这个过程,它有一个巨大的计数值,比添加回车的位置要大,但是它是在同一个地方打印的。

如何在一行上而不是几行上打印大字符串?

新怀疑:

我在GNATStudio上运行了main,但是如果我在cmd上直接运行main.exe,我现在可以在一行中看到SQL。GNATStudio可能正在为打印配置最大行长。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-06 14:19:36

Ada中的行长是无界的,直到显式更改,如Set_Line_LengthNew_Line所要求的那样。可能是您的命令行控制台正在包装这些行以提高可读性。测试这一点的一种方法是使用Ada.Strings.Fixed将一行长行打印到控制台:

代码语言:javascript
复制
Put_Line (50 * "0123456789");

您还可以将输出输送到一个实用程序,该实用程序可以格式化输出以进行更仔细的检查:

代码语言:javascript
复制
./main | hexdump -C

您的确切方法将取决于所使用的控制台。在使用GNAT时,我看到它支持。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72868316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档