У меня возникли проблемы с чтением ввода из файла. Итак, что я сделал, так это сделал программу проверки концепции, которая является частью моей основной программы, которая делает гораздо больше, но у меня только проблемы с чтением ввода. Вот мое доказательство концептуальной программы:
WITH Ada.Text_IO; USE Ada.Text_IO;
with ada.Integer_Text_IO; use ada.Integer_Text_IO;
PROCEDURE Open_File IS
subtype idnum is string(1 ..7);
-- Make short names so that we can show where things come from
My_File : File_Type; -- Name for file in this program
Os_Name : String := "My_Data.txt"; -- OS name for the file
N : idnum; -- Temporary for reading and printing file contents
EOL : boolean;
C : character;
BEGIN
-- Open will raise an ADA.IO_EXCEPTIONS.NAME_ERROR expection
-- if the file does not exist.
Open (File => My_File, Mode => In_File, Name => Os_Name);
LOOP
EXIT WHEN End_Of_File (My_File);
Look_Ahead(My_File, C, EOL);
IF EOL THEN
Skip_Line;
ELSE
IF C = ' ' THEN
Get(My_File, C);
ELSE
Get (My_File, N);
Put_Line(N);
END IF;
END IF;
END LOOP;
Close (My_File);
END open_file;
Мой файл данных выглядит так: (включая пробелы без новых строк после последнего идентификатора)
1234567
456784a
6758abc
Когда я компилирую и запускаю свою программу, на экран выводится только первый номер идентификатора. Я понятия не имею, где проверить мой код, потому что он должен продолжать получать идентификационные номера до конца файла.
Любая помощь будет принята с благодарностью. Спасибо!
C
иEOL
нигде не определены - person egilhh   schedule 06.11.2014