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

Нужно считать данные из файла и заменить определенный текст на заданный - C++

Восстановить пароль Регистрация
 
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
20.03.2014, 19:13     Нужно считать данные из файла и заменить определенный текст на заданный #1
Есть файл с таким содержимым: (в нем записаны вещ. числа)
Пример:
1.000 1.111 2.222 3.333 4.444 5.555
6.555 4.333 3.333 4.444 6.666 7.777

Нужно заметить, что 1.000 1.111 - это в рамках моей программы ОДНО число (и также это один столбец, а вовсе не два!). Часть 1.000 я записываю в экземпляр структуры One (см.ниже), часть 1.111 в Two.
(!) Кроме того, таких чисел может быть уйма, однако получается так, что столбцов всегда БУДЕТ стоять на 1 (единицу) больше, чем кол-во строк. В данном случае у меня в файле записаны две строки и три столбца в каждой(!!!).
И да, сами числа в файле (физически) разделены одиночным пробелом.

Есть структура:
C++
1
2
3
4
5
struct Chisla
{
    double One;
    double Two;
} com;
Есть два контейнера:
C++
1
2
vector <Chisla> First;
vector < vector <Chisla> > Second;
Я делаю так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double val;
while ( FileIn >> val )
{
  if ( FileIn.get() != '\n' && FileIn.peek() != EOF )
  {
       com.One = val;
       FileIn.get();
       FileIn >> com.Two;
 
       First.push_back(com); 
       Second.push_back(First);
  }
     First.clear();
}
FileIn.close();
Потом все это надо вывести также, как было в файле:
C++
1
2
3
4
5
6
    for (int i = 0; i < (кол-во строк); i++) 
    {
        for (int j = 0; j < (кол-во столбцов); j++)
            cout << Second[i][j].One << ' ' << Second[i][j].Two << ' ';
                       cout << endl;
    }
Спасибо!
Желательно без диковинных конструкций и пр., чтоб разобраться можно было!

Добавлено через 1 час 33 минуты
хелп
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2014, 19:13     Нужно считать данные из файла и заменить определенный текст на заданный
Посмотрите здесь:

считать текст из файла C++
C++ Считать посимвольно текст из файла
C++ Считать текст из файла
С++ . Считать текст из файла и заменить цифры на слова C++
C++ Как считать текст с файла ?
Как считать текст из файла в С++? C++
Как считать текст из файла? C++
Считать определенный пункт структуры из файла и записать в массив C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.03.2014, 19:34     Нужно считать данные из файла и заменить определенный текст на заданный #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
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <fstream>
#include <vector>
#include <iomanip>
using namespace std;
 
struct Chisla
{
    double One;
    double Two;
} com;
 
int main()
{
    vector <Chisla> First;
    vector < vector <Chisla> > Second;
    
    ifstream FileIn("file.txt");
    if (!FileIn)
    {
        cout << "Error!" << endl;
        cout << "Exit!" << endl;
        cin.get();
        return 0;
    }
 
    while (FileIn >> com.One >> com.Two)
    {
        First.push_back(com);
        if ( FileIn.peek() == '\n' || FileIn.peek() == EOF )
        {
            Second.push_back(First);
            First.clear();
        }
    }
    FileIn.close();
 
    int size_matr = Second.size();
    int size_str = Second[0].size();
    for (int i = 0; i < size_matr; i++) 
    {
        for (int j = 0; j < size_str; j++)
            cout << fixed << setprecision(3) << Second[i][j].One << ' ' << Second[i][j].Two << ' ';
                       cout << endl;
    }
 
    cout << "Exit!" << endl;
    cin.get();
    return 0;
}
Миниатюры
Нужно считать данные из файла и заменить определенный текст на заданный  
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
26.03.2014, 20:31  [ТС]     Нужно считать данные из файла и заменить определенный текст на заданный #3
alsav22,
Отлично!

Я решаю систему лин. уравнений одной модификацией метода Гаусса.

В чем суть:
1) В исходной матрице (у меня вектор, ибо работать приходиться с комплексными числами в виде структуры) первая строка остается без изменений
2) 1-ый элемент 2-ой строки (назовем его С1) заменяется на отрицание своего деления на 1-ый элемент 1-ой строки
[I]P.S. В данном случае под элементом я подразумеваю одно комплексное число -> комбинацию мнимой и действ. частей, а именно Second[i][j].One и Second[j].Two
3) 2-ой элемент 2-ой строки равен сумме самого себя и 2-ого элемента 1-ой строки, умноженного на С1
P.S. Сложение/умножения производиться отдельно для действ. и мнимой чатей, то есть они складываются сами по себе: действ. часть с действ., мнимая с мнимой
4) 3-ий элемент 2-ой строки равен сумме самого себя и 3-его элемента 1-ой строки, умноженного на С1
5) 4-ый элемент 2-ой строки равен сумме самого себя и 4-ого элемента 1-ой строки, умноженного на С1
6) ... и т.д. до конца этой строки

Для третьей строки справедливо почти все тоже самое, с небольшими отличиями:
7) 1-ый элемент 3-ей строки (назовем его С2) заменяется на отрицание своего деления на 1-ый элемент 1-ой строки
8) 2-ой элемент 3-ей строки равен сумме самого себя и 2-ого элемента 1-ой строки, умноженного на С2
9) 3-ий элемент 3-ей строки равен сумме самого себя и 3-его элемента 1-ой строки, умноженного на С2
10) 4-ый элемент 3-ей строки равен сумме самого себя и 4-ого элемента 1-ой строки, умноженного на С2
11) ... и т.д. по нарастающей...

Далее идет следующим образом:
12) 2-ой элемент 3-ей строки (назовем его С3) заменяется на отрицание своего деления на 2- ой элемент 2-ой строки
13) 3-ий элемент 3-ей строки равен сумме самого себя и 3-его элемента 2-ой строки, умноженного на С3
14) ...и т.д. до конца строки

15) Отличие в том, что в каждой последующей строке элементы С сдвигаются на одну позицию вправо. В итоге должна получится треугольная матрица - элементы С снизу и значения вычислений сверху
16) Все это дело выполняется до тех пор, пока не останутся два последних элемента (не считая С)

Ничего более-менее по реализации вразумительного никак не придумаю
Yandex
Объявления
26.03.2014, 20:31     Нужно считать данные из файла и заменить определенный текст на заданный
Ответ Создать тему
Опции темы

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