Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/43: Рейтинг темы: голосов - 43, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 23.03.2009
Сообщений: 106
1

Считывание чисел из файла и запись их в массив

01.02.2012, 20:11. Показов 8349. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется файл txt со следующей строкой:
ght# 1, nkat= 8, str= 1.00000, lmv= 0.5000 0.0001 0.0001 (reduced coord)
ght# 2, nkat= 8, str= 1.00000, lmv= 0.4500 0.0002 0.0002 (reduced coord)
ght# 3, nkat= 8, str= 1.00000, lmv= 0.4000 0.0003 0.0003 (reduced coord)
Требуется считать из этого файла последние три цифры из каждой строки (т.е. из первой 0.5000, 0.0001, 0.0001 и т.д.) и записать их в массив 3 на 3.
Помогите, пожалуйста.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.02.2012, 20:11
Ответы с готовыми решениями:

Считывание чисел из нескольких textBox-ов и запись этих чисел в двумерный массив
Здравствуйте, хотелось бы задать один вопрос. У меня есть форма winforms на ней располагается не сколько texbox-ов допустим 9 (то есть...

Считывание файла в массив и запись нового файла
Консоль VS C++. Текстовый файл открывается как бинарный, и считывается по 100 байт в массив - и сразу они переписываются в другой файл. В...

Считывание строк из файла и запись в массив
Добрый день, уважаемые форумчане! Помогите пожалуйста в Qt осуществить считывание известного числа N сток из текстового файла и запись...

8
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15
01.02.2012, 21:52 2
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
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>
using std::ifstream;
using std::copy;
 
int main()
{
    ifstream In("c:\\temp\\1.txt");//здесь путь к твоему файлу надо указать
 
    typedef char buf [100];
    buf mass [3];
    
    for(int i = 0; i<3; i++)
    {
    In.getline(mass[i],100);
    }
    
    char* p1 = strstr(mass[0],"0.5");
    char* p2= strstr(mass[0],"(");
    copy(p1,p2,mass[0]);
    char* end = strstr(mass[0],"1.0");
        *end = 0; // "отрезаем" лишние значения
 
    p1 = strstr(mass[1],"0.45");
    p2= strstr(mass[1],"(");
    copy(p1,p2,mass[1]);
    end = strstr(mass[1],"1.0");
        *end = 0;
 
    p1 = strstr(mass[2],"0.40");
    p2= strstr(mass[2],"(");
    copy(p1,p2,mass[2]);
    end = strstr(mass[2],"1.0");
        *end = 0;
//теперь в массиве mass находятся 3 строки в каждой последние 3 цифры
 
 
    return 0;
}
1
1 / 1 / 0
Регистрация: 23.03.2009
Сообщений: 106
01.02.2012, 22:35  [ТС] 3
А можно ли сделать процедуру записи в массив в виде цикла? Три строчки в файле это приведено условно. Их там намного больше. Не писать же для каждой из сотни строк
C++ Скопировано
1
2
3
4
5
        p1 = strstr(mass[1],"0.45");
        p2= strstr(mass[1],"(");
        copy(p1,p2,mass[1]);
        end = strstr(mass[1],"1.0");
                *end = 0;
..
0
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15
01.02.2012, 23:11 4
pro_mary, так и циферьки разные могут быть. задача стояла конкретная. есть файл там три строчки такого то содержания. на до сделать то то.
Цитата Сообщение от pro_mary Посмотреть сообщение
Имеется файл txt со следующей строкой:
ght# 1, nkat= 8, str= 1.00000, lmv= 0.5000 0.0001 0.0001 (reduced coord)
ght# 2, nkat= 8, str= 1.00000, lmv= 0.4500 0.0002 0.0002 (reduced coord)
ght# 3, nkat= 8, str= 1.00000, lmv= 0.4000 0.0003 0.0003 (reduced coord)
Требуется считать из этого файла последние три цифры из каждой строки (т.е. из первой 0.5000, 0.0001, 0.0001 и т.д.) и записать их в массив 3 на 3.
Помогите, пожалуйста.
какова задача в целом? найти любые данные в любом количестве строк?
0
1 / 1 / 0
Регистрация: 23.03.2009
Сообщений: 106
01.02.2012, 23:27  [ТС] 5
В файле все строки идентичны, просто я не стала загромождать сообщение сотней строк, изменяются: ght от 1 до 100, и значения lmv. Нужно записать значения lmv в массив, а тип данных - числа с плавающей точкой.
0
Эксперт по математике/физике
 Аватар для Том Ардер
4218 / 3413 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
02.02.2012, 00:14 6
Примерно так:
(кстати, не три цифры, а три числа, разница есть)

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
#include <float.h>
#include <math.h>
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
 
int main()
{
  char buf[MAX_PATH];
  ifstream inf( "путь к файлу ввода" );
  ofstream outf( "путь к файлу вывода" );
 
  if( !inf.fail() && !outf.fail() )
  {
    double array[3];
    char comma;
    int nDummy;
    double dDummy;
 
    while( !inf.eof() )
    {
       inf >> buf // ght#
           >> nDummy >> comma // 1,
           >> buf // nkat=
           >> nDummy >> comma // 8,
           >> buf // str=
           >> dDummy >> comma // 1.00000,
           >> buf // lmv=
           >> array[0] >> array[1] >> array[2];
       inf.getline( buf, MAX_PATH ); // skip rest of the line
       outf << setw(15) << array[0] << setw(15) << array[1] << setw(15) << array[2];
   }
    inf.close();
    outf.close();
  }
  else
  {
      // files opening error
  }
}
1
1 / 1 / 0
Регистрация: 23.03.2009
Сообщений: 106
02.02.2012, 00:28  [ТС] 7
Точно, три числа.. Я об этом подумала тогда, когда уже написала.. Спасибо!!
0
1 / 1 / 0
Регистрация: 23.03.2009
Сообщений: 106
14.02.2012, 19:09  [ТС] 8
Компилятор ругается на следующее:
C++ Скопировано
1
char buf[MAX_PATH];
Пишет : error C2065: 'MAX_PATH' : undeclared identifier..

Добавлено через 13 минут
С MAX_PATH разобралась..
А как из файла, имеющего такой вид:
ght# 1, nkat= 8, str= 1.00000, lmv= 0.5000 0.0001 0.0001
-3.78987 -1.16032 4.69394 4.69394 7.38388 9.23579 9.23579 13.45362
ght# 2, nkat= 8, str= 1.00000, lmv= 0.4500 0.0002 0.0002
-6.03831 4.74627 5.70919 5.70919 8.43435 8.74293 8.74293 10.10776
ght# 3, nkat= 8, str= 1.00000, lmv= 0.4000 0.0003 0.0003
-5.89384 4.56875 5.08418 5.08418 7.86175 9.60627 9.60627 10.21287
записать в другой файл следующее:
0.5000 0.0001 0.0001 -3.78987 -1.16032 4.69394 4.69394 7.38388 9.23579 9.23579 13.45362
0.4500 0.0002 0.0002 -6.03831 4.74627 5.70919 5.70919 8.43435 8.74293 8.74293 10.10776
0.4000 0.0003 0.0003 -5.89384 4.56875 5.08418 5.08418 7.86175 9.60627 9.60627 10.21287
т . е из нечетных строк брать последние три числа, а из четных все.
0
Эксперт по математике/физике
 Аватар для Том Ардер
4218 / 3413 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
15.02.2012, 03:12 9
Цитата Сообщение от pro_mary Посмотреть сообщение
из нечетных строк брать последние три числа, а из четных все.
Использовать счётчик строк в цикле чтения, примерно так:

C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
int counter = 0;  //
while( !inf.eof() )
{
    counter++;
    if( counter % 2 == 1 )
    {
        // обработка нечётных строк
    }
    else
    {
        // обработка чётных строк
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.02.2012, 03:12
Помогаю со студенческими работами здесь

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

Посимвольное считывание с файла и запись в массив
Всем привет, подскажите, правильно ли я выполняю посимвольное(Нужно считывать, не зная заранее сколько символов считаешь) считывание с...

Считывание строк из файла и запись в массив
Добрый день. Вопрос такой, у меня в файле находится произвольное количество строк и столбцов чисел типа int и float как мне правильно...

Считывание массива чисел из файла и запись их в Memo
Помогите пожалуйста Есть файл, в нем в 1 столбик идет массив чисел X,кол-во элементов нам неизвестно, нужно написать программу, которая...

Считывание матрицы из файла и запись в динамический массив
Есть файл c n-количеством матриц и нужно считать их. И записать их элементы в динамические массивы для последующей работы с ними. В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Вопросы на собеседовании по Android
mobDevWorks 14.03.2025
По данным статистики, Android занимает более 70% мирового рынка мобильных операционных систем, что делает платформу привлекательной как для начинающих разработчиков, так и для опытных профессионалов. . . .
Лучшие игровые движки для Python
py-thonny 14.03.2025
Python обеспечивает разработчиков игр мощными движками и фреймворками, которые позволяют воплотить практически любую идею — от простой аркады до визуального романа с разветвленным сюжетом. Главное. . .
Бессерверный JavaScript: Разработка масштабируемых API с AWS Lambda
run.dev 14.03.2025
Но что такое бессерверные вычисления на самом деле? По сути, это модель облачных вычислений, где разработчик фокусируется исключительно на создании бизнес-логики, не тратя время на настройку. . .
Безопасность кода в C++26: Менеджеры ресурсов и висячие ссылки
NullReferenced 14.03.2025
C++ всегда был языком, предоставляющим разработчикам большие возможности и гибкость, но вместе с тем требующим ответственности. Одной из самых коварных проблем даже для опытных программистов остаются. . .
smart-agent proper interface settings (2025)
jigi33 14.03.2025
Smart-agent proper interface settings (mart 2025). (see screenshots to look at "Etalon" ARM)
Продвинутые настройки JVM
Javaican 14.03.2025
Стандартные параметры запуска JVM хороши для повседневной разработки, но совершенно недостаточны для высоконагруженных систем. Представьте, что вы запускаете финансовую платформу, обрабатывающую. . .
CI/CD для приложений Java с Azure DevOps и Docker
Mr. Docker 14.03.2025
Разработка современных Java-приложений немыслима без системы непрерывной интеграции и доставки (CI/ CD). Azure DevOps в сочетании с Docker предоставляет мощный инструментарий для создания таких. . .
Разработка на PHP и интернет вещей (IoT)
Jason-Webb 14.03.2025
Интернет вещей (IoT) произвел настоящую революцию в способах взаимодействия устройств с окружающим миром. В эпоху, когда холодильники сами заказывают молоко, а термостаты учатся вашим привычкам,. . .
Node.js 20: Новые возможности и улучшения производительно­сти
Reangularity 14.03.2025
Что же принёс нам релиз Node. js 20? В первую очередь, это существенные улучшения в производительности. Движок V8 получил серьёзные оптимизации, благодаря чему JavaScript-код выполняется заметно. . .
Безопасность кластеров Apache Kafka
Javaican 14.03.2025
Apache Kafka стал одним из ключевых компонентов современных архитектур, обрабатывающих потоки данных в режиме реального времени. Его используют тысячи компаний от стартапов до технологических. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер