C ++ простое чтение файла в массив вопрос - PullRequest
1 голос
/ 30 ноября 2010

Простой быстрый вопрос. Каков наилучший способ прочитать в массиве значений с плавающей запятой, которые вы не знаете, как долго они будут? (Однако мы знаем, что он не будет длиннее 75 целых)

Допустим, у меня есть файл (derp.txt) и целые числа 5,3 6,2 1,5 5,0 1,4 4,5 ..... и т. д.

и я хочу поместить их в номера массивов [75]; Каков наилучший способ сделать это в C ++ (и если вы чувствуете себя великолепно, C)

Я думал, что это будет комбинация струнных потоков и getline, но я совсем не знаком с струнными потоками.

изменить: я забыл упомянуть об этом. После этого массива есть еще 2 числа, которые не принадлежат этому массиву (они легко читаются), поэтому в основном мне просто нужно прочитать до конца строки

1 Ответ

8 голосов
/ 30 ноября 2010
std::vector<double> results;
std::copy(std::istream_iterator<double>(std::cin),
          std::istream_iterator<double>(),
          std::back_inserter(results));

Вы можете заменить std::cin тем потоком, который вы на самом деле используете.

Чтение в массив немного сложнее, но, вероятно, вы все равно не хотите использовать массив;Вы сказали, что не знаете, какой длины будет список значений, так как узнать, что 75 - правильный размер для массива?С std::vector у вас нет этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...