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

Заменить расположение элементов в файле - C++

Восстановить пароль Регистрация
 
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
27.05.2010, 23:52     Заменить расположение элементов в файле #1
Дан файл целых чисел с элементами A1, A2, …, AN (N — количество элементов в файле). Заменить исходное расположение его элементов на следующее:
A1, AN, A2, AN–1, A3, … .

Подскажите пожалуйста, как написать. Какие функции можно использовать и как можно изменить расположение собственно)) Заранее - спасибо!!

Добавлено через 2 часа 39 минут
Ребят! помощь ещё нужна. Подскажите как создать расположение!

Добавлено через 2 часа 46 минут
Народ! ну много же не прошу! просто пока что алгоритм и по возможности помощь в функциях, и всё! Неужли никто не может помоч?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
28.05.2010, 00:18     Заменить расположение элементов в файле #2
если они так и идут в одну строку A1, A2, …, AN 1, 2, 4, 43,
читаешь всю строку fgets
разбиваешь ее на лексемы strtok(buff, " ,");
дальше если у тебя целые числа из строки переводишь в инт int atoi(buff); <stdlib.h>
если вещественные то double atof(buff); <cmath>
записываешь их в массив int или double по порядку
а дальше в цикле сортируешь как душе угодно.
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
28.05.2010, 08:33  [ТС]     Заменить расположение элементов в файле #3
Проблема в том что они не идут в строку. Каждый элемент соответственно должен идти с новой строки. Вот потому и прошу помощи.
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
28.05.2010, 11:20     Заменить расположение элементов в файле #4
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
Проблема в том что они не идут в строку. Каждый элемент соответственно должен идти с новой строки. Вот потому и прошу помощи.
тогда еще проще...
в цикле читаешь файл и преобразовываешь скажем в int
C++
1
2
3
4
5
6
7
8
9
char str[32];
int arr[количество элементов];
int i=0;
while(!feof(f1))
        {
                fgets(str,31,f1);
               arr[i]=atoi(str);
i++;
        }
а потом, что хочешь то и делаешь с этим массивом.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
28.05.2010, 12:42     Заменить расположение элементов в файле #5
С файлами просто, а вот с перестановкой намудрил малость, может кто-нибудь попроще придумает.
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
#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
 
int main(int argc, char* argv[])
{
   int size = 0, buf, i, len;
   int *num;
   char *file_name = "d:\\progexp\\test.txt";
   FILE *file;
 
   if ((file = fopen(file_name, "r+")) == NULL )
   {
      perror("fopen");
      exit(EXIT_FAILURE);
   }
 
   while (fscanf(file, "%i", &buf) != EOF)
      size++;
   fseek(file, 0, SEEK_SET);
   clearerr(file);
   if (size == 0)
   {
      printf("File %s is empty\n", file_name);
      exit(EXIT_SUCCESS);
   }
 
   num = (int*)calloc(size, sizeof(int));
 
   i = 0;
   while (fscanf(file, "%i", &num[i]) != EOF)
      i++;
   fseek(file, 0, SEEK_SET);
   clearerr(file);
 
   if (size % 2 == 0)
      len = size/2;
   else
      len = size/2 +1;
   for (i = 0; i < len; i++)
   {
      if (num[i] != num[size-i-1])
      {
         fprintf(file, "%i\n", num[i]);
         fprintf(file, "%i\n", num[size-i-1]);
      }
      else
         fprintf(file, "%i\n", num[i]);
   }
   free(num);
   fclose(file);
   return 0;
}
Yandex
Объявления
28.05.2010, 12:42     Заменить расположение элементов в файле
Ответ Создать тему
Опции темы

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