Чтение символов в массиве

Прежде всего, я только начинающий, и это мой первый C++ учебный класс

Скажем, если у меня есть массив под названием result[500]У меня уже есть входной поток под названием ifstreamКак я могу сохранить весь контент (в основном это все числа и операторы и пробелы между двумя, но нам нужны только числа и операторы) в массив.

например, файл:

 3   4   2   1  -  5

придет к

result[]= {3,4,2,1,-,5}

Кто-нибудь может мне помочь с этой проблемой?

Заранее спасибо!!!

2

Решение

смотреть на std::fstream:

  1. Чтение:

    std::ifstream ifs("data.txt");
    for (int i = 0; i < N; ++i)
    {
    ifs >> array[i];
    }
    
  2. Хранение:

    std::ofstream ofs("data.txt");
    for (int i = 0; i < N; ++i)
    {
    ofs << array[i] << " ";
    }
    
3

Другие решения

Вы должны использовать цикл for, чтобы перебрать все элементы и вывести их в очередь за одним, добавляя любое форматирование по вашему желанию.

1

Если вы замените READ_FROM_STREAM с вашим кодом чтения потока, то это должно делать это более или менее.

int i = 0;
int x = 0;
while(x = atoi(READ_FROM_STREAM)) {
array[i++] = x;
}

Вы, вероятно, должны также проверить, что i<MAX_ARR_SIZE или похожие.

1

  1. Читать каждую строку
  2. разбить каждую строку на пустом пространстве разделителя
  3. хранить элементы в списке stl
  4. используйте std :: sort для сортировки элементов

Каждая из этих строк — это ключевые слова, по которым вы можете искать в Интернете и самостоятельно найти решение, чтобы вы могли изучать c ++.

удачи

1
По вопросам рекламы [email protected]