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

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

Войти
Регистрация
Восстановить пароль
 
 
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
#1

If работа с файлом - C++

24.12.2014, 12:01. Просмотров 699. Ответов 33
Метки нет (Все метки)

Часть кода в которой я записываю строки в файл,по параметрам которые совпадают,как записать те строки в которых нет совпадение?

как проверить есть ли строка в файле?


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
while (readStr(fin1, vstr1))
    {
        while (readStr(fin2, vstr2))
        {
            if (vstr1[3] == vstr2[3] && vstr1[4] == vstr2[4] && vstr1[5] == vstr2[5] )
            {
                printNewStr(vstr1, vstr2);
                cout<<'.';
                vstr2.clear();
 
            }
 
            else
             {
                //cout<<'/';
                vstr2.clear();
                continue;
            }
 
 
               }
 
        fin2.clear();
 
fin2.seekg(0);
    vstr1.clear();
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2014, 12:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос If работа с файлом (C++):

работа с файлом) - C++
Помогите пжлст написать прогу.Задание: Найти среднее количество знаков препинания в абзаце.Текст считывать с файла. Добавлено через...

Работа с файлом - C++
Добрый вечер форумчане. Прошу помочь мне в написание программы. Речь идет о простой последовательности. Количество чисел, равных...

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

Работа с файлом - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; struct STUDENT // структура STUDENT { string name; ...

Работа с файлом в С++ - C++
Всем привет! Я никогда не работал с С++, но возникла необходимость чтения-записи в файл на С++. А если еще точнее Embedded C++. Не...

Работа с файлом - C++
Помогите пожалуйста. Надо подсчитать в файле количество букв &quot;A&quot; и записать это число в конец файла.

33
dzrkot
zzzZZZ...
523 / 353 / 54
Регистрация: 11.09.2013
Сообщений: 2,037
24.12.2014, 12:21 #2
Цитата Сообщение от ebywku Посмотреть сообщение
как проверить есть ли строка в файле?
считать всё из файла, проверить, если надо - изменить прочитанное и переписать по новой на старое.
0
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
24.12.2014, 12:31  [ТС] #3
Цитата Сообщение от dzrkot Посмотреть сообщение
считать всё из файла, проверить, если надо - изменить прочитанное и переписать по новой на старое.
ну как бы исходя из логики я понимаю что надо делать,но не знаю как)
я бы не отказался от алгоритма проверки)
0
dzrkot
zzzZZZ...
523 / 353 / 54
Регистрация: 11.09.2013
Сообщений: 2,037
24.12.2014, 12:35 #4
Цитата Сообщение от ebywku Посмотреть сообщение
ну как бы исходя из логики я понимаю что надо делать,но не знаю как)
я бы не отказался от алгоритма проверки)
C++
1
2
3
string str1="hello world";
string str2="hello world";
if(str1 == str2)
0
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
24.12.2014, 13:17  [ТС] #5
Цитата Сообщение от dzrkot Посмотреть сообщение
C++
1
2
3
string str1="hello world";
string str2="hello world";
if(str1 == str2)
не затруднит на моем коде пример?ибо у меня не особо получилось прикрутить
0
dzrkot
zzzZZZ...
523 / 353 / 54
Регистрация: 11.09.2013
Сообщений: 2,037
24.12.2014, 13:22 #6
Цитата Сообщение от ebywku Посмотреть сообщение
не затруднит на моем коде пример?ибо у меня не особо получилось прикрутить
нет, простите но я помогаю тем кто хоть что-то понимает или тем кому интересно - это пожалуйста. А когда такой подход - лишь бы сдать преподу, за вас я делать не буду.
1
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
24.12.2014, 13:40  [ТС] #7
Цитата Сообщение от dzrkot Посмотреть сообщение
нет, простите но я помогаю тем кто хоть что-то понимает или тем кому интересно - это пожалуйста. А когда такой подход - лишь бы сдать преподу, за вас я делать не буду.


тоже правильно,но все же вы имеете ошибочное мнение по поводу моих намерений на счет этой программы,
проблема в том что задача есть,а объяснить некому,моих знаний хватает на "Hello world" и немного с массивами дружу,а тут работа с файлами с которой я знакомлюсь впервые и если для строк которые заданы в программе прекрасно понимаю как решить мою задачу,то для строк заданных с файла - я не имею никакого понятия.
0
dzrkot
zzzZZZ...
523 / 353 / 54
Регистрация: 11.09.2013
Сообщений: 2,037
24.12.2014, 13:46 #8
Цитата Сообщение от ebywku Посмотреть сообщение
тоже правильно,но все же вы имеете ошибочное мнение по поводу моих намерений на счет этой программы,
проблема в том что задача есть,а объяснить некому,моих знаний хватает на "Hello world" и немного с массивами дружу,а тут работа с файлами с которой я знакомлюсь впервые и если для строк которые заданы в программе прекрасно понимаю как решить мою задачу,то для строк заданных с файла - я не имею никакого понятия.
вот есть книги, есть раздел литература. Я сейчас не понимаю в чём ваш вопрос, вы выложили какой-то кусок кода, где нету никакого считывания из файла, и спрашиваете как проверять строки...Как мне с вами вести конструктивный диалог?Вы бы почитали что ли хоть об этом...
0
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
24.12.2014, 15:01  [ТС] #9
Цитата Сообщение от dzrkot Посмотреть сообщение
вот есть книги, есть раздел литература. Я сейчас не понимаю в чём ваш вопрос, вы выложили какой-то кусок кода, где нету никакого считывания из файла, и спрашиваете как проверять строки...Как мне с вами вести конструктивный диалог?Вы бы почитали что ли хоть об этом...


Можно адекватно указывать на ошибки человека,не выложил код - напишите :" я не могу вам помочь,пока не увижу весь код"...,я не думаю что это тот форум где стоит поднимать эту тему разговора,к вам вопрос нет,спасибо за помощь.
0
dzrkot
zzzZZZ...
523 / 353 / 54
Регистрация: 11.09.2013
Сообщений: 2,037
24.12.2014, 15:11 #10
Цитата Сообщение от ebywku Посмотреть сообщение
Можно адекватно указывать на ошибки человека,не выложил код - напишите :" я не могу вам помочь,пока не увижу весь код"...,я не думаю что это тот форум где стоит поднимать эту тему разговора,к вам вопрос нет,спасибо за помощь.
а можно адекватно формулировать вопрос? Я по прежнему готов вам помочь, но боюсь что вы попросите от меня лишь готовое решение.
Цитата Сообщение от ebywku Посмотреть сообщение
Часть кода в которой я записываю строки в файл,по параметрам которые совпадают,
Я более чем уверен, что раз вы выкладываете какой-то непонятный кусок кода, в котором по вашему запись в файл, то вы понятия не имеете что он делает.
0
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
24.12.2014, 15:36  [ТС] #11
Цитата Сообщение от dzrkot Посмотреть сообщение
а можно адекватно формулировать вопрос? Я по прежнему готов вам помочь, но боюсь что вы попросите от меня лишь готовое решение.

Я более чем уверен, что раз вы выкладываете какой-то непонятный кусок кода, в котором по вашему запись в файл, то вы понятия не имеете что он делает.


Тогда укажите мне путь - книгу в которой все описано,ну или статью,если это вас не затруднит.


А на счет кода,могу построчно прокомментировать,на счет того почему я выложил его : я думал что можно решить проблему в том же цикле и не особо видел смысла выкладывать весь код,видимо в этом я ошибся.
0
dzrkot
zzzZZZ...
523 / 353 / 54
Регистрация: 11.09.2013
Сообщений: 2,037
24.12.2014, 15:40 #12
Цитата Сообщение от ebywku Посмотреть сообщение
Тогда укажите мне путь - книгу в которой все описано,ну или статью,если это вас не затруднит.
целый раздел книг на форуме, от себя - С.Прата Язык программирования С++.

Цитата Сообщение от ebywku Посмотреть сообщение
А на счет кода,могу построчно прокомментировать,на счет того почему я выложил его : я думал что можно решить проблему в том же цикле и не особо видел смысла выкладывать весь код,видимо в этом я ошибся.
Прокомментируйте, давайте с вами сядем вместе и разбирёмся =)
0
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
24.12.2014, 15:54  [ТС] #13
Цитата Сообщение от dzrkot Посмотреть сообщение
целый раздел книг на форуме, от себя - С.Прата Язык программирования С++.


Прокомментируйте, давайте с вами сядем вместе и разбирёмся =)

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
while (readStr(fin1, vstr1))    //readstr - Функции  парсит файл на строки,строки на элементы,парсим первый файл 
    {
        while (readStr(fin2, vstr2))  // парсим второй
        {
            if (vstr1[3] == vstr2[3] && vstr1[4] == vstr2[4] && vstr1[5] == vstr2[5] ) // мое условие отбора 
            {
                printNewStr(vstr1, vstr2); // функция записи в файл
                cout<<'.';
                vstr2.clear(); // очищаем строку вторую
 
            }
 
            else
             {
                //cout<<'/';
                vstr2.clear(); // опять же
                continue; //переход  к след. итерации цикла
            }
 
 
               }
 
        fin2.clear();
      fin2.seekg(0); перемещаем указатель ввода на 0
    vstr1.clear();
    }
ну вот как то так
0
dzrkot
zzzZZZ...
523 / 353 / 54
Регистрация: 11.09.2013
Сообщений: 2,037
24.12.2014, 16:03 #14
Цитата Сообщение от ebywku Посмотреть сообщение
ну вот как то так
а vstr1 это что?string?char*?

теперь сами функции выложите и распишите)
0
ebywku
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 58
24.12.2014, 16:07  [ТС] #15
Цитата Сообщение от dzrkot Посмотреть сообщение
а vstr1 это что?string?char*?

теперь сами функции выложите и распишите)

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <cstdlib>
 
using namespace std;
 
 ofstream notunic("D:\\notunic.csv");
 //ofstream unic("D:\\unic.csv");
 
bool readStr(ifstream& fin, vector <string>& vstr)
{
    string temp;
 
    for (int i = 0; i < 4; ++i)
    {
        getline(fin, temp, ';');
        if (fin)
            vstr.push_back(temp);
        else
            return false;
    }
 
    for (int i = 0; i < 2; ++i)
    {
        getline(fin, temp, ';');
        vstr.push_back(temp);
    }
    getline(fin, temp);
    vstr.push_back(temp);
 
    return true;
}
 
void printNewStr(vector <string>& vstr1, vector <string>& vstr2)
{
 
/*cout       << vstr1[0] << ';' << vstr2[0] << ';'
         << vstr1[1] << ';' << vstr2[1] << ';'
         << vstr1[2] << ';' << vstr2[2] << ';'
         << vstr1[3] << ';' << vstr2[3] << ';'
         << vstr1[4] << ';' << vstr1[5] << ';'
         << vstr1[6] << ';' << vstr2[6] << endl;   */
 
 
 
notunic  << vstr1[0] << ';' << vstr1[1] << ';'
         << vstr1[2] << ';' << vstr1[3] << ';'
         << vstr1[4] << ';' << vstr1[5] << ';'
         << vstr1[6] << ';' <<'\t'<<';'<< vstr2[0] << ';'
         << vstr2[1] << ';' << vstr2[2] << ';'
         << vstr2[3] << ';' << vstr2[4] << ';'
         << vstr2[5] << ';' << vstr2[6] << endl;
 
}
 
 
 
 
int main()
{
 
    ifstream fin1("D:\\1.csv");
    ifstream fin2("D:\\2.csv");
 
 
    if (!fin1 || !fin2)
    {
 
        cout << "Error!File patch - 'D:\\' " << endl;
        cout << "File name - '1.csv' '2.csv' " << endl;
        system("pause");
        return 0;
    }
 
    vector <string> vstr1;
    vector <string> vstr2;
 
 
 
 
    cout<<"Processing";
 
    while (readStr(fin1, vstr1))
    {
        while (readStr(fin2, vstr2))
        {
 
                if (vstr1[3] == vstr2[3] && vstr1[4] == vstr2[4] && vstr1[5] == vstr2[5] )
            {
 
               printNewStr(vstr1, vstr2);
                    cout<<'.';
                vstr2.clear();
            }
 
            else
            {
                vstr2.clear();
                continue;
            }
               }
        fin2.clear();
        fin2.seekg(0);
        vstr1.clear();
 
   }
cout<<'\n';
cout<<"Done.";
cout<<'\n';
     notunic.close();
    //unic.close();
    system("pause");
    return 0;
}



Вот весь код,по поводу росписи ,давайте это перенесем на вечернее время,сейчас есть чем заняться.
И по поводу книги,я так понял там много изданий,стоит начинать с первого издания?
0
24.12.2014, 16:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2014, 16:07
Привет! Вот еще темы с ответами:

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

Работа с файлом - C++
char *FileName =&quot;123.txt&quot;; int h=fileno(fopen(FileName,&quot;r+&quot;)); FileName=&quot;\0&quot;; Как мне теперь используя только h работать с файлом?...

Работа с файлом - C++
вот смотрите есть файл chisla.txt В нем содержатся цифры ( Например 101 258 164) Как мне изъять из файла ТОЛЬКО 1 число (например 101)???

Работа с файлом - C++
Помогите если не затруднит. Есть текстовый файл(примерно такой): A asdada qweqw A ijiijij nvbjk rtrt A


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

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

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