Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Считывние из файла по столбцам в С++, Считывание из файла в С++ 
V
    Опции темы
ihtiandr
Дата 6.7.2011, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 16.12.2010

Репутация: нет
Всего: нет



Всем доброго времени суток.
Есть задача:
Дан текстовый файл в котором записаны данные следующим образом
1 12 3 
2 3 11 
5 2 11  
8 3 14
Необходимо считать первый элемент первого столбца в переменную A и первый элемент третьего столбца в переменную D;
Далее сравнить переменную А с элементами имеющегося массива и в случае нахождения совпадений к следующему элементу прибавить D
т. е.
изначально массив такой: 
1 3 34 7 2 4 8 5 11
после первого чтения из файла при А=1 и D=3 массив должен измениться:
1 6 34 7 2 4 8 5 11
 
После этого считывается следующая строка из файла таким же образом т. е. А=2 D=11  и опят проделывается поиск А в массиве и т. д. до конца файла.

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

PM MAIL   Вверх
newbieone
Дата 6.7.2011, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 14.3.2010

Репутация: 1
Всего: 1



Ну а считать одно число из файла вы можете? Пройдите в цикле по всем строчкам файла, на каждой итерации считывайте три числа, первое и третье заносите в переменные. В чем проблема?
PM MAIL   Вверх
ihtiandr
Дата 6.7.2011, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 16.12.2010

Репутация: нет
Всего: нет



Так нельзя по условию.
Разрешено пользоваться только двумя элементами.

Это сообщение отредактировал(а) ihtiandr - 6.7.2011, 11:12
PM MAIL   Вверх
RastaDja
Дата 6.7.2011, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 1.11.2010

Репутация: 3
Всего: 5



Цитата(ihtiandr @  6.7.2011,  12:11 Найти цитируемый пост)
Так нельзя по условию.
Разрешено пользоваться только двумя элементами.

Цитата(newbieone @  6.7.2011,  11:26 Найти цитируемый пост)
первое и третье заносите в переменные




--------------------
The more closely you look at one thing, the less closely can you see something else.
PM MAIL   Вверх
bsa
Дата 6.7.2011, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



ihtiandr, а какими функциями можно пользоваться "по условию"? Например: fscanf, fgets/sscanf?

Это сообщение отредактировал(а) bsa - 6.7.2011, 11:38
PM   Вверх
ihtiandr
  Дата 6.7.2011, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 16.12.2010

Репутация: нет
Всего: нет



Пожалуйста покажите на примере

 bsa, разрешено использовать fscanf

Это сообщение отредактировал(а) ihtiandr - 6.7.2011, 11:43
PM MAIL   Вверх
bsa
Дата 6.7.2011, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Код
int array[] = {};
while(!feof(f)) {
   int a;
   int d;
   int i;
   if (fscanf(f, "%i %*i %i", &a, &d) != 2)
      break;
   for(i = 0; i < sizeof(array)/sizeof(*array)-1; ++i)
      if (array[i] == a)
          array[i+1] += d;
}

PM   Вверх
ihtiandr
Дата 6.7.2011, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 16.12.2010

Репутация: нет
Всего: нет



bsa огромное спасибо всё работает. smile 
PM MAIL   Вверх
bsa
Дата 6.7.2011, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196




M
bsa
ihtiandr, если ответ на вопрос получен, то пометь тему решенной


PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.