Как читать файл .inp в С++?

У меня есть набор данных, файл формата .inp, и мне нужно прочитать этот файл на С++. Однако метод fopen() fread(), похоже, дал сбой и прочитал неправильные данные (например, первое целое число должно быть 262144, тем не менее fread дает целое число, намного большее этого).

Чтобы быть более конкретным, мой файл .inp содержит несколько целых чисел и числа с плавающей запятой, как я могу успешно прочитать их в С++?

введите здесь описание изображения Это скриншот файла *.inp из Notepad++. По сути это текстовый файл.


person SupernoobBran    schedule 04.07.2020    source источник
comment
Вы знаете структуру файла? Возможно, это написано в формате с прямым порядком байтов, а не с прямым порядком байтов? Это может объяснить разницу в значениях.   -  person Retired Ninja    schedule 04.07.2020
comment
Я не знаю, что такое файл формата .inp. Не могли бы вы поделиться спецификацией, пожалуйста?   -  person Ted Lyngmo    schedule 04.07.2020
comment
Я загрузил скриншот файла *.inp, не могли бы вы помочь мне, пожалуйста?   -  person SupernoobBran    schedule 04.07.2020


Ответы (2)


Я решил это, скопировав данные в txt. Однако я до сих пор не знаю, как читать *.inp

person SupernoobBran    schedule 04.07.2020

Я нашел некоторую информацию о расширении файла INP. Кажется, что существует несколько его вариантов, каждый из которых предназначен для использования в разных целях. Откуда ваш файл? Что касается души, если вы не можете нормально открыть файл с помощью fopen/fstream, вы можете рассматривать его как двоичный файл и читать каждое значение так, как вы укажете. Кроме этого, я мог бы подумать о вызове системных функций для получения содержимого файла (например, cat в Linux), тогда, если есть какие-то случайные символы, вы можете проанализировать свою строку, чтобы опустить их.

Вот пример того, как вызвать кошку в C++: из С++?

person Advent    schedule 04.07.2020