Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
#1

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

20.03.2014, 19:13. Просмотров 340. Ответов 2
Метки нет (Все метки)

Есть файл с таким содержимым: (в нем записаны вещ. числа)
Пример:
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 минуты
хелп
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2014, 19:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно считать данные из файла и заменить определенный текст на заданный (C++):

Считать текст из файла, вывести в другой файл и на экран только строки содержащие заданный с клавиатуры символ - C++
// Написать программу, которая считывает текст из файла и выводит в другой файл // и на экран только строки, содержащие введенный с...

Считать текст из файла и заменить цифры на слова - C++
Помогите пожалуйста, не понимаю как сделать: Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры...

Считать текст из файла и заменить символ А на символ В - C++
Нужно написать программу, которая считывает текст из файла и заменяет символ А на символ В. Можете помочь?

Считать определенный пункт структуры из файла и записать в массив - C++
Имеется структура записанная в файл, как считать опрделенный пункт структуры и записать в массив?

Как правильно считать текст из файла? Весь текст, со всеми знаками, пробелами - C++
подскажите, чет затупил как правильно считать текст из файла(весь текст со всеми знаками пробелами и т.д.), чтобы поработать с этим текстом...

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

2
alsav22
5428 / 4823 / 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;
}
1
Миниатюры
Нужно считать данные из файла и заменить определенный текст на заданный  
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) Все это дело выполняется до тех пор, пока не останутся два последних элемента (не считая С)

Ничего более-менее по реализации вразумительного никак не придумаю
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2014, 20:31
Привет! Вот еще темы с ответами:

считать текст из файла - C++
в файле есть большой текст, мне нужно считать десять предложений, вывести их на экран, обработать, за тем считать еще десять предложений,...

Считать текст из файла - C++
Как можно считать текст из файла?? ifstream fin(&quot;test.txt&quot;, ios::in|ios::nocreate ); if (!fin) {cout&lt;&lt;&quot;ERROR! &quot;&lt;&lt;endl; return 1;} ...

Считать данные из файла - C++
Нужно сделать так чтоб данные брались с файла а не с консоли ,кто может исправить? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

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


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

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

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