Форум программистов, компьютерный форум CyberForum.ru

Чтение массива из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ STL http://www.cyberforum.ru/cpp-beginners/thread208835.html
Доброго времени суток! Возникли трудности с пониманием задачи и принципа работы программы. Задание следующее: "Разработать программу - библиотеку (книга-расположение в библиотеке). Нужно воспользоваться одним или несколькими шаблонами, определенными в STL." Правильно ли я считаю, что здесь нужны 2 файла: 1-й - с названиями книг, 2-й - с двумя координатами расположения книги? Подскажите,...
C++ подключение библиотеки помогите подключить библиотеку header. какой не ввожу кож пишет ошибку, мне сказали что у меня не подключена библиотека помогите кто может=) у меня visual studio 2010 скайп - yetaxaxa http://www.cyberforum.ru/cpp-beginners/thread208827.html
C++ Найти наименьший элемент матрицы и записать нули в ту строку и столбец, где он находится
помогите сложить программу на языке С++ для Борланд это очень важно.. заранее спасибо в долгу не останусь.... Добавлено через 7 минут ребят , прошу помогите....
Табулирование функции и вывод результата в таблице C++
Помогите, пожалуйста, решить задачу. Протабулировать функцию с использованием оператора цикла с параметром. Сменная x с шагом h на заданом промежутке . http://www.cyberforum.ru/attachment.php?attachmentid=53634&stc=1&d=1292101932 Спасибо.
C++ матрица http://www.cyberforum.ru/cpp-beginners/thread208806.html
доброго времени суток. помогите пожалуйста. ЗАДАНИЕ вот такое: * прочесть из файла матрицу A(n*n). Вычислить произведение отрицательных элементов. Определить индексы максимального элемента. Результаты занести в файл. * один раз пропустил лекцию и теперь не знаю как с файлом работать.
C++ удаление из массива повторяющихся элементов! где-то маленькая ошибка! Значит,задача : удалить повторы в массиве, оставив по одному вхождению! моя идея. если 2 компонента, стоящие рядом, равны друг другу, начиная с первго делаю сдвиг в право, и удаляю последний элемен. почему-то местами работает неверно вот например ввожу массив: 1 1 1 1 3 5 получаю результат: 1 1 3 5 т е удаляет он ровно половину повторов( подробнее

Показать сообщение отдельно
YourLastSong
1 / 1 / 0
Регистрация: 12.12.2010
Сообщений: 112
12.12.2010, 01:22     Чтение массива из файла
Здравствуйте, господа.

Заранее извиняюсь за то, что задаю, скорее всего, не самый умный вопрос на этом форуме и за то, что такая тема уже, возможно, тут когда-либо присутствовала, однако стоит отметить, что поиском я пользоваться всё же пытался.

Если у вас есть время прочитать о том, что у меня не получается сделать, буду очень признателен.

Мне необходимо сделать две функции - записи данных в файл и чтения их из него.

Для записи у меня 5 целочисленных переменных (назовём их, например, value_1 - value_5), а также трёхмерный массив int huge a1 [100][80][24].

Функция записи в файл у меня выглядит след. образом:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void save_game ()
{
    fstream fp;
    fp.open ("save.sav", ios::out);
    fp << n << " " << load_map << " " << local_pos << " " << map_locations << " " << start_map << " ";
    for (n = 0; n < 100; n++)
    for (i = 0; i < 80; i++)
    for (j = 0; j < 24; j++)
    fp << location[n][i][j] << " ";
    cout << "Saving complete" << endl << endl << "Press any key to quit";
    getch ();
    exit (EXIT_SUCCESS);
}
Функция чтения из файла у меня выглядит след. образом:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int load_game ()
{
    fstream fp;
    fp.open ("save.sav", ios::in);
    fp >> n >> load_map >> local_pos >> map_locations >> start_map;
    cout << n << load_map << local_pos << map_locations << start_map;
    local_map_value = n;
    for (n = 0; n < 100; n++)
    for (i = 0; i < 80; i++)
    for (j = 0; j < 24; j++)
    fp >> location[n][i][j];
    n = local_map_value;
    cout << "Loading complete" << endl << endl << "Press any key to quit";
    getch ();
    exit (EXIT_SUCCESS);
    return n, location[n][i][j], load_map, local_pos, map_locations, start_map;
}
На самом деле, из функции чтения выход всё же не осуществляется, идёт переход на другую функцию, которая уже будет использовать переменные из файла.

Создание файла и сохранение абсолютно всех переменных осуществляется прекрасно. Если сменить расширение файла, который мы создаём, на .txt, то можно даже узнать, что сохраняются именно те значения, которые надо. Проблема в том, что читаются лишь некоторые переменные - точнее, только первые из них. Сначала я думал, что дело в том, что я не так использовал fstream. Когда я попробовал использовать fprintf и fscanf, то проблема всё равно осталась. Потом я решил, что дело в цикле for - попробовал использовать некоторые другие способы. Разумеется, это тоже не помогло.

Для проверки, что же в итоге происходит со значениями, которые не читает из файла, я написал вот такое и увидел, что все значения он показывает как нули:

C++
1
2
3
4
5
6
7
8
9
10
    for (n = 0; n < 100; n++)
    {
    for (i = 0; i < 80; i++)
    {
    for (j = 0; j < 24; j++)
    {
    cout << location[n][i][j];
    }
    }
    }
В чём тут может быть дело?

Заранее благодарю за возможные ответы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru