我在一个较大的程序中一直遇到这个问题,所以我制作了一个新的ada程序来对其进行测试,结果也是如此。
我有一个文本文件(Unix行尾):
000_1000_0010_1001
100_0000_0010_1001
100_1000_0000_1001
100_1000_0010_0001
100_1000_0010_1001
000_0000_0011_0011
100_1000_0100
000_0000_0110
111_1111_1111
011_1111_1111
000_0000_0110
Run Code Online (Sandbox Code Playgroud)
我要使用的方法很简单,将每行放入一个字符串中,然后直接将其打印出来。
这是我的代码:
000_1000_0010_1001
100_0000_0010_1001
100_1000_0000_1001
100_1000_0010_0001
100_1000_0010_1001
000_0000_0011_0011
100_1000_0100
000_0000_0110
111_1111_1111
011_1111_1111
000_0000_0110
Run Code Online (Sandbox Code Playgroud)
容易吧?它使用get_line接收每一行,将其保存到“ input”变量中,然后打印出所读取的任何量(使用get_line()返回的长度)。
不幸的是,当我运行以下代码时,我得到了一堆空白行:
gnatmake read read.adb
read < input.txt
Run Code Online (Sandbox Code Playgroud)
000_1000_0010_1001
100_0000_0010_1001
100_1000_0000_1001
100_1000_0010_0001
100_1000_0010_1001
000_0000_0011_0011
100_1000_0100
000_0000_0110
111_1111_1111
011_1111_1111
000_0000_0110
Run Code Online (Sandbox Code Playgroud)
我仔细检查了一下,确保我的输入文件中没有任何怪异的行尾字符或类似的字符(我只是在vim中输入了它们)。
这弄乱了我的程序,因为我必须考虑这些错误的空行。
知道我在做什么错吗?