Member 13404013 Ответов: 1

У меня есть пара вопросов о чтении из текстовых файлов.


Это вопросы, которые я не могу понять.

(d) без доступа к любому из вариантов scanf (), как бы вы прочитали подписанный
целое число из текстового файла? (Предположим, что файл открыт и целое число является следующим
вещь, которую нужно прочесть.)

(e) опять же без scanf (), как бы вы прочитали действительное число из текстового файла?

Что я уже пробовал:

I'm thinking the function fread() needs to be used but I'm not sure if this is correct.

1 Ответов

Рейтинг:
2

Jochen Arndt

Поскольку текстовые файлы разделены строками, вы можете использовать ссылка на fgets - C++ [^] для чтения файла строка за строкой в буфер.

Если строка содержит несколько элементов (например, слова или цифры, разделенные пробелом), вы должны разделить строку или разобрать ее по элементам. Это можно сделать, посмотрев на каждый символ и остановившись на символах разделения или используя функции стандартной библиотеки C strchr, strpbrk-ссылка на C++ [^] , или strtok-ссылка на C++ [^].

После того как вы выделили элемент (при необходимости), который является числом, вы можете использовать Atoi-ссылка на C++ [^] , atol, strtol-ссылка на C++ [^] , ссылка atof - C++ [^], или strtod-ссылка на C++ [^] для преобразования в int, long, или double.

Вы также можете прочитать полный файл в выделенный буфер размером файла + 1, прочитать содержимое в буфер с помощью fread, набор buffer[file_size] = 0 (добавьте нулевой байт, чтобы создать допустимую строку) и проанализируйте буфер с помощью вышеупомянутых функций.