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

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

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

Почему не записывает в файл данные? Файловый вывод. - C++

15.05.2009, 18:52. Просмотров 836. Ответов 1
Метки нет (Все метки)

Help!!!!!!!
привет всем!
консольное приложение С++(компилятор BC++ 6.0)
тема работы поиск всех вхождений подстроки в строку по маске (*,? )
может кто подскажет почему в этом коде не происходит запись результата в файл.



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
117
118
119
120
121
122
123
124
125
126
127
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
int main ()
{
/************************* ПЕРЕМЕННЫЕ **************************************************/
 
    int Result=0;       // Счетчик результата поиска
    int LenKey=0;           // Длинна строки (см. дальше)
    string TempStr="";  // Временная строка
        const keySize = 1000;
    char  Key[keySize];     // Искомая строка
    char inFile[50];    // Имя входного файла
    char outFile[50];   //Имя выходного файла
    char  Str [200];    // Буффер для строки
 
/************************* ВВОДИМЫЕ ЗНАЧЕНИЯ ******************************************/
    cout << "Enter input file name: ";
    cin >> inFile;              // Вводим имя файла
    cout << endl;
    cout << "Enter output file name: ";
    cin >> outFile;             // Вводим имя файла
    cout << endl;
    cin.get();
    cout << "Enter find text: ";
    cin.getline(Key,keySize);           // Вводим то, что ищем
 
/******************** ПОЛУЧЕНИЕ СТРОКИ ИЗ ФАЙЛА ***************************************/
        ofstream OutputFile(outFile);   // Открываем файл
 
    ifstream InputFile(inFile); // Открываем файл
 
    while (! InputFile.eof())       // Читаем строки пока не закончился файл
    {
        if (InputFile.fail())       // Если файл не открыватся, тогда ошибка
            {
            cout << endl << endl;
            cerr << "*********** Error open file ***********" << endl;
            cout << endl;
            cout << "Press ENTER";
            cin.get();      // Для задержки результата
            exit(1);
            }
        else
 
        InputFile.getline (Str, 200);   // Получаем символы
    //  Str = CharBuf;                                  // Запихиваем символы в строку
 
 
 
/************************* ПОИСК ******************************************************/
        LenKey = strlen(Key);
        int LenStr = strlen(Str);
        int endPos = 0;                 //позиция исходной
        int space = 0;
        int fin=0;
        while (Str[endPos]< LenStr)
        {
            if (Str[endPos]==' ') space = endPos; //первый пробел
            fin = 0;
            while((Key[fin]!='\0')&& (Key[fin] == Str[endPos] || Key[fin] == '*' || Key[fin] == '?'))
            {
                if (Key[fin] == '?')
                    if (fin == (LenKey-1))
                        {
                            do
                            {
                                    OutputFile << Str[space];
                                    space++;
                            } while(Str[space]!= ' ' && Str[space]!= '\0');
                         endPos = space;
                         OutputFile << endl;
                         goto start;
                        }
                //============================================================
                if (Key[fin] == '*')
                {
                    do
                    {
                        fin++;
                    } while(Key[fin] == '?' || Key[fin] == '*');
                    if (fin == (LenKey-1))
                        {
                            do
                            {
                                    OutputFile << Str[space];
                            } while(Str[++space]!='\0');
                         endPos = space;
                         OutputFile << endl;
                         goto start;
                        }
                    while(Key[fin]!=Str[endPos] && Str[endPos] !='\0')
                            endPos++;
                }
                //============================================================
                if (Key[fin] == Str[endPos])
                    if (fin == (LenKey-1))
                        {
                            do
                            {
                                    OutputFile <<Str[space];
                                    space++;
                            } while(Str[space]!= ' ' && Str[space]!= '\0');
                        endPos = space;
                        OutputFile << endl;
                        goto start;
                        }
                     else if (endPos == (LenStr-1))
                                goto start;
                //endPos++;
                fin++;
                if  (endPos < LenStr-1)
                        { endPos++; }
                    else goto start;
            }
start:  endPos++;
 
        }
     }
 
    cout << "exit program";
 
    cin.get();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2009, 18:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему не записывает в файл данные? Файловый вывод. (C++):

Файловый ввод-вывод. Почему не создается/открывается файл? - C++
IDE CodeBlocks Компилятор MinGW 20120426 Вот код: ifstream in(&quot;C\\vvod.in&quot;); ofstream out(&quot;C\\vyvod.out&quot;); if (!in) ...

Открыть текстовый файл, дозаписать в него данные, вывести содержимое файла (файловый ввод/вывод) - C++
Открыть текстовый файл 1.txt, имя файла указывается в командной строке. Дозаписать в него данные. Вывести содержимое файла 1.txt построчно.

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

fstream не записывает данные в файл - C++
Если к примеру открываю файл так : fstream io; io.open(&quot;test.txt&quot;); то читает из файла хорошо, если при этом не записывать ничего....

Программа не записывает данные в файл - C++
Программа не записывает данные в файл помогите исправить #include&lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...

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

1
lagun
0 / 0 / 0
Регистрация: 06.05.2009
Сообщений: 7
30.05.2009, 23:27  [ТС] #2
тему можно удалить.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2009, 23:27
Привет! Вот еще темы с ответами:

Вывод суммы в файл (файловый ввод/вывод) - C++
Добрый день! Я пытался написать программу, которая должна вводить данные из файла №1, потом вычислять их сумму и полученное значение...

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

Один поток записывает данные в файл, другой читает - C++
Написать код на С++ или С# или на Java Создать два потока. Первый поток производит запись в файл случайных данных. Второй производит...

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


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

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

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