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

Указатели и одномерный массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Указатель на указатель на функцию http://www.cyberforum.ru/cpp-beginners/thread101083.html
Дан следующий код void f () {} void main() { void (**ppf) (); } Вопрос: какой код следует написать, чтобы инициализировать указатель ppf указателем на указатель на функцию f?
C++ Главная диагональ матрицы Даны две квадратные матрицы. Напечатать ту из них, которая имеет минимальный "след" (т.е. сумму элементов главной диагонали). Использовать функцию для нахождения следа матрицы и функцию печати матрицы. Задача не сложная, но не знаю синтаксис Си, а сдавать нужно завтра, напишите пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread101080.html
Найти номера первого минимального и последнего максимального элемента из данного набора C++
Мальчики и девушки, помогите пожалуйста решить задачку на С++.... Дано целое число N и набор из N целых чисел. Найти номера первого минимального и последнего максимального элемента из данного набора и вывести их в указанном порядке.
C++ Коррекция перевода float > char[]
Вечер добрый! Задача такова - из float'а получить строку, но после запятой нужно оставить N знаков. Собственно я вывожу FPS на экран если конкретнее, а так в общем и для других целей сгодится. Делаю так: #define DOT_DIG_NUM 2 #define TEMP_SIZE 30 qString::qString(float newData){ char newCharData = {0}; /// start gcvt(newData, 1 + newData/10.0 + DOT_DIG_NUM, &newCharData); int dot_pos =...
C++ Перевод расстояний из дюймов в сантиметры http://www.cyberforum.ru/cpp-beginners/thread101050.html
1. Напишите программу печати таблицы перевода расстояний из дюймов в сантиметры для значений длин от 1 до 20 дюймов. 1 дюйм = 2,54 см. (1 балл) Добавлено через 2 минуты 2. Напишите программу вывода всех четных чисел от 2 до 100 включительно. (2 балла) Добавлено через 1 минуту 4. Напишите программу, определяющую сумму всех нечетных чисел от 1 до 99. (2 балла) Добавлено через 45 секунд...
C++ Вопрос по кнопкам в С++ Подскажите какой параметр дописать в свойствах кнопки, чтобы после ее нажатия она становилась неактивной? подробнее

Показать сообщение отдельно
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
11.03.2010, 17:24     Указатели и одномерный массив
Panda91, вот функции сохранения и записи массива в файл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <fstream>
#include <iostream>
 
// Результат операции с файлом
enum FileOperationResult {
  forSuccess   ,  // Операция завершена успешно
  forOpenError ,  // Ошибка открытия
  forReadError ,  // Ошибка чтения
  forWriteError,  // Ошибка записи
};
 
FileOperationResult LoadArray(int** p_arr, int* p_size)
{
  std::ifstream file("file.txt");
 
  if (!file)
    return forOpenError;
 
  int size;
 
  if (!(file >> size))
    return forReadError;
 
  int* arr = new int[size];
 
  for (int i = 0; i < size; ++i)
    if (!(file >> arr[i]))
      return forReadError;
 
  *p_arr  = arr;
  *p_size = size;
 
  return forSuccess;
}
 
FileOperationResult SaveArray(const int* arr, int size)
{
  std::ofstream file("file.txt");
 
  if (!file)
    return forOpenError;
 
  if (!(file << size << std::endl))
    return forWriteError;
 
  for (int i = 0; i < size; ++i)
    if (!(file << arr[i] << " "))
      return forWriteError;
 
  return forSuccess;
}
 
int main()
{
  setlocale(LC_ALL, "Russian");
 
  const int arr1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  const int size1  = sizeof(arr1) / sizeof(arr1[0]);
 
  switch (SaveArray(arr1, size1)) {
    case forSuccess:
      std::cout << "Сохранение прошло успешно." << std::endl;
      break;
 
    case forOpenError:
      std::cout << "Не удалось открыть файл для записи." << std::endl;
      return 0;
 
    case forWriteError:
      std::cout << "Ошибка записи." << std::endl;
      return 0;
  }
 
  int* arr2  = 0;
  int  size2 = 0;
 
  switch (LoadArray(&arr2, &size2)) {
    case forSuccess:
      std::cout << "Загрузка прошла успешно." << std::endl;
      break;
 
    case forOpenError:
      std::cout << "Не удалось открыть файл для чтения." << std::endl;
      return 0;
 
    case forReadError:
      std::cout << "Ошибка чтения." << std::endl;
      return 0;
  }
 
  for(int i = 0; i < size2; ++i)
    std::cout << arr2[i] << " ";
 
  std::cout << std::endl;
 
  delete [] arr2;
 
  return 0;
}
 
Текущее время: 18:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru