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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.87
Ramoncheg
24 / 17 / 1
Регистрация: 04.03.2013
Сообщений: 170
Записей в блоге: 1
#1

Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. - C++

04.03.2013, 04:25. Просмотров 2991. Ответов 49
Метки нет (Все метки)

Есть текстовый файл, в нем 3 столбца чисел (число строк заранее неизвестно). Напишите пожалуйста код, чтобы первый столбец записывался в 1й массив, второй столбец во 2й массив, а 3й столбец в 3й массив.
Вложения
Тип файла: txt 1.txt (254 байт, 33 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2013, 04:25     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив.
Посмотрите здесь:

C++ Нужно чтобы в матрице столбец менялся на столбец свободных членов
Добавить строку/столбец в двумерный массив (Матрицу) C++
Создать двумерный массив. Удалить из него строку и столбец с заданным номером C++
C++ Сформировать двумерный массив. Удалить из него строку и столбец с заданным номером
Сформировать двумерный массив. Удалить из него столбец с заданным но-мером C++
Функция добавляет столбец справа в динамический массив C++
C++ Сформировать одномерный массив. Удалить из него строку и столбец, на пересечении которых находится минималь
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.03.2013, 08:03     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #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
#include <iostream>
#include <fstream>
#include <windows.h>
#include <cstdlib>
using namespace std;
 
const int N = 100;
 
void show_arr(double* arr, int number)
{
    cout.precision(10);
    cout.showpoint;
    for (int i = 0; i < number; i++)
        cout << arr[i] << endl;
    cout << endl;
}
 
int main()
{
    double arr1[N], arr2[N], arr3[N];
 
    ifstream fin("1.txt");
    
    int i;
    for (i = 0; fin; i++)
    {
        fin >> arr1[i] >> arr2[i] >> arr3[i];
    }
    --i;
    
    show_arr(arr1, i);
    show_arr(arr2, i);
    show_arr(arr3, i);
    
    system("pause");
    return 0;
}
Добавлено через 21 минуту
Если сначала посчитать количество строк с числами в файле (после последней строки с числами не должно быть пустых строк):
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
#include <iostream>
#include <fstream>
#include <string>
#include <windows.h>
#include <cstdlib>
using namespace std;
 
void show_arr(double* arr, int number)
{
    cout.precision(10);
    cout.showpoint;
    for (int i = 0; i < number; i++)
        cout << arr[i] << endl;
    cout << endl;
}
 
int main()
{
    ifstream fin("1.txt");
 
    string str;
    int arr_size = 0;
    while(fin)
    {
        getline(fin, str);
        if(fin) ++arr_size;
    }
    
    fin.clear();
    fin.seekg(0);
    
    double *arr1 = new double[arr_size];
    double *arr2 = new double[arr_size];
    double *arr3 = new double[arr_size];
    
    for (int i = 0; i < arr_size; i++)
           fin >> arr1[i] >> arr2[i] >> arr3[i];
    
    
    show_arr(arr1, arr_size);
    show_arr(arr2, arr_size);
    show_arr(arr3, arr_size);
 
    delete [] arr1;
    delete [] arr2;
    delete [] arr3;
 
    system("pause");
    return 0;
}
Ramoncheg
24 / 17 / 1
Регистрация: 04.03.2013
Сообщений: 170
Записей в блоге: 1
04.03.2013, 08:12  [ТС]     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #3
#include <cstdlib> для чего эта библиотека?


void show_arr(double* arr, int number)
{
cout.precision(10);
cout.showpoint;
for (int i = 0; i < number; i++)
cout << arr[i] << endl;
cout << endl;
} И что делает эта функция, объясни пожалуйста.
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.03.2013, 08:16     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #4
Выводит (с точностью 10 знаков) содержимое массива на экран.
Ramoncheg
24 / 17 / 1
Регистрация: 04.03.2013
Сообщений: 170
Записей в блоге: 1
04.03.2013, 08:20  [ТС]     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #5
И еще 1 вопрос :
--i; что нам дает в данном случае ?
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.03.2013, 09:19     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #6
Цитата Сообщение от Ramoncheg Посмотреть сообщение
И еще 1 вопрос :
--i; что нам дает в данном случае ?
Точное количество строк в файле, а значит и элементов в массиве. Иначе будет мусор выводить.

Добавлено через 30 минут
Цитата Сообщение от alsav22 Посмотреть сообщение
а значит и элементов в массиве.
Имеется ввиду, записанных из файла чисел.
Ramoncheg
24 / 17 / 1
Регистрация: 04.03.2013
Сообщений: 170
Записей в блоге: 1
05.03.2013, 00:13  [ТС]     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #7
Спасибо, теперь вроде понятно.

Добавлено через 14 часов 49 минут
Как здесь можно определить количество строк или количество элементов в массиве?
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.03.2013, 01:01     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #8
Цитата Сообщение от Ramoncheg Посмотреть сообщение
Как здесь можно определить количество строк или количество элементов в массиве?
В первом коде - сколько раз по три числа считалось (i показывает). Во втором коде - сколько строк считалось (arr_size показвает).
Ramoncheg
24 / 17 / 1
Регистрация: 04.03.2013
Сообщений: 170
Записей в блоге: 1
06.03.2013, 15:34  [ТС]     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #9
как можно скомпилировать код в borland c++ builder ?
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.03.2013, 16:15     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #10
Не компилируется или что?
Ramoncheg
24 / 17 / 1
Регистрация: 04.03.2013
Сообщений: 170
Записей в блоге: 1
06.03.2013, 16:53  [ТС]     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #11
в билдере нет, только в visual studio или в dev c++

Добавлено через 15 минут
[C++ Error] Unit1.cpp(30): E2476 Cannot overload 'main'
[C++ Error] Unit1.cpp(30): E2178 VIRDEF name conflict for 'main()'



вот пишет эти ошибки и не компилирует
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.03.2013, 16:58     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #12
Что там за пергрузка main()? Какой проект?
Ramoncheg
24 / 17 / 1
Регистрация: 04.03.2013
Сообщений: 170
Записей в блоге: 1
06.03.2013, 17:05  [ТС]     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #13
Все я уже исправил. Там просто я когда создавал проект, не удалил int main() и получилось 2 функции int main().
alsav22
06.03.2013, 17:15
  #14

Не по теме:

Там пустой проект создать можно или нет? Вроде бы все компилируется, но консоли при запуске не видно.

Ramoncheg
24 / 17 / 1
Регистрация: 04.03.2013
Сообщений: 170
Записей в блоге: 1
06.03.2013, 23:42  [ТС]     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #15
Цитата Сообщение от alsav22 Посмотреть сообщение
Не по теме:
Там пустой проект создать можно или нет? Вроде бы все компилируется, но консоли при запуске не видно.
Да создать можно , но просто консоль не запустится .

Добавлено через 6 часов 14 минут
alsav22, можешь написать пожалуйста второй код, но только через класс ( при помощи объектно-ориентированного подхода) ??
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.03.2013, 00:13     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #16
Писать не буду, времени нет. Могу только подсказать как сделать.
Ramoncheg
24 / 17 / 1
Регистрация: 04.03.2013
Сообщений: 170
Записей в блоге: 1
07.03.2013, 01:16  [ТС]     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #17
ну ,если можешь, подскажи пожалуйста )
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.03.2013, 01:19     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #18
В файле что?

Добавлено через 2 минуты
Что за числа? Откуда? Для чего?
Ramoncheg
24 / 17 / 1
Регистрация: 04.03.2013
Сообщений: 170
Записей в блоге: 1
07.03.2013, 01:23  [ТС]     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #19
Короче файл там не полный был.Там 3 столбца с координатами к графику (3й столбец это X для обоих функций , а 1й и 2й координата Y для графиков 1 и 2 соответственно). Вот , чтобы построить график, нужно записать элементы в массив.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2013, 01:33     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив.
Еще ссылки по теме:

Вставьте в массив после каждого столбца из положительных элементов столбец из 0 C++
C++ Заполнить массив единицами и вывести в столбец с указанием номера элемента
C++ Отсортируйте каждый нечётный столбец массива по возрастанию (неправильно сортирует массив)
Отсортировать по возрастанию первый и второй столбец матрицы C++
C++ Сформировать одномерный массив как столбец матрицы,содержащий минимальный элемент на побочной диагонали

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

Или воспользуйтесь поиском по форуму:
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.03.2013, 01:33     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. #20
Задание какое-нибудь есть? А то не понятно какой, собственно, класс нужен?
Yandex
Объявления
07.03.2013, 01:33     Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru