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

Строки и файлы - C++

Восстановить пароль Регистрация
 
Stayer
 Аватар для Stayer
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 13
20.05.2012, 00:53     Строки и файлы #1
В заданном тексте после каждого символа Ch удалить все символы до ближайшего символа, не являющегося буквой.

моя прога:
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
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
    setlocale(0,"rus");
 
    const char ch='5';
    string s;
 
    ifstream fin("input.txt");
 
    if(!fin)
    {   
        cout<<"File not found"; 
        return 1;
    }
    while(getline(fin, s,'\n'))
    {
        cout<<s<<'\n';
    
    cout<<endl;
    while(!fin)
    {
        for(int i=0;i<=16;i++)
        {
            if (s[i]=ch)
                while(s[i]=('a','z'))   // здесь я хотел указать буквы от а до z
                {
                    delete s[i]; // здесь подчёркивает s -ошибка
                }
        }
    }
    }
    system("pause");
    fin.close();
 
    return 0;
}
помогите пожалуйста !?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2012, 00:53     Строки и файлы
Посмотрите здесь:

Файлы и строки C++
строки и файлы C++
строки и файлы C++
C++ Строки и файлы в С++
файлы и строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
20.05.2012, 01:37
  #2

Не по теме:

Цитата Сообщение от Stayer Посмотреть сообщение
после каждого символа Ch
- что такое символ Ch это целых два символа С и h. Если это С (HEX) тогда это 12 и это вообще непечатаемый символ.

Stayer
 Аватар для Stayer
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 13
20.05.2012, 11:08  [ТС]     Строки и файлы #3
не, символ Ch - как я понял, это один какой-нибудь символ (в константе)
-=ЮрА=-
Заблокирован
Автор FAQ
20.05.2012, 12:18     Строки и файлы #4
Цитата Сообщение от Stayer Посмотреть сообщение
не, символ Ch - как я понял, это один какой-нибудь символ (в константе)
тогда вот
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
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
 
int main()
{
    char ch;
    char rd;
    string str;
    bool bFind = false;//Флаг того что найден символ ch
    ofstream ofs("tmp.txt");//Промежуточный файл
    ifstream ifs("text.txt");//Пробуем открыть наш файл данных
    if(!ifs.is_open())
        cout<<"Error open text.txt\n";
    else
    if(!ofs.is_open())
        cout<<"Error open temporary file\n";
    else
    {
        cout<<"Enter symbol ch : ";cin>>ch;
        cout<<"Iput text : \n";
        while(!ifs.eof())
        {
            ifs.read((char *)&rd,1);
            if(!ifs.eof())
            {
                cout<<rd;
                if(rd == ch)
                    bFind = true;//Устанавливаем флаг найден ch в состояние истина
                else
                if(!isalpha(rd) && bFind)//Удаляем все небуквы после ch
                    bFind = false;//Как только встретили букву - сбрасываем флаг
                if(bFind)//Пишм в ввіходной файл толкьо буквы после ch 
                {
                    str += rd;
                    ofs.write((char *)&rd,1);
                }
            }
        }
        ofs.close();
        ifs.close();
        if(remove("text.txt"))
            cout<<"Error deliting text.txt\n";
        else
        if(rename("tmp.txt","text.txt"))
            cout<<"Error rename tmp.txt in text.txt\n";
        else
            cout<<"\nOutput text :\n"<<str<<endl;
    }
    system("pause");
    return 0;
}
text.txt до отработки алгоритма
fduhgdfuhidf g
dhgf fhg/gf j89k,
hds21h65d0 02f8
fjhg
s25jfk4 d5 jmkh,j.6+
d
f2j5h4f

text.txt после отработки алгоритма
fduhgdfuhidfffhgfffjhgfkff
Миниатюры
Строки и файлы  
Stayer
 Аватар для Stayer
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 13
20.05.2012, 15:05  [ТС]     Строки и файлы #5
Спасибо большое)
только мне надо было что бы результат выводился на экран)))

Ну я думаю, это я сделаю )
-=ЮрА=-
Заблокирован
Автор FAQ
20.05.2012, 15:08     Строки и файлы #6
Цитата Сообщение от Stayer Посмотреть сообщение
Ну я думаю, это я сделаю )
Посмотри внимательней на строку Output text - это уже текст из которого уже всё выброшено
Stayer
 Аватар для Stayer
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 13
20.05.2012, 15:50  [ТС]     Строки и файлы #7
У меня почему то файл text.txt не открывается ...

и ещё, в самом задании сказано что удалить все символы до ближайшего символа НЕ являющегося буквой...
(т.е. удалять надо символы являющиеся буквами)- так ведь вроде...
т.е. например :
text.txt-> qwertyghjkl;4563+-*yfed+heio0230)(75fhjf
ch= y
Тогда результат должен быть такой -> qwerty;4563+-*y+heio0230)(75fhjf

я так понимаю)

Добавлено через 11 минут
->файл открывается ... (это я исправил)
-=ЮрА=-
Заблокирован
Автор FAQ
20.05.2012, 17:33     Строки и файлы #8
Цитата Сообщение от Stayer Посмотреть сообщение
меня почему то файл text.txt не открывается ...
- скорее всего ты его не создал просто в каталоге проекта.

Цитата Сообщение от Stayer Посмотреть сообщение
и ещё, в самом задании сказано что удалить все символы до ближайшего символа НЕ являющегося буквой...
- сейчас, посмотрю возможно условие не совсем так как надо воспринял.
-=ЮрА=-
Заблокирован
Автор FAQ
20.05.2012, 18:04     Строки и файлы #9
Посидев над логикой пришёл к тому что допустил просчёт в условиях, поправляюсь
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
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
 
int main()
{
    char ch;
    char rd;
    string str;
    bool bWrite= false;//Флаг того что следует производить запись символа
    bool bFind = false;//Флаг того что найден символ ch
    ofstream ofs("tmp.txt");//Промежуточный файл
    ifstream ifs("text.txt");//Пробуем открыть наш файл данных
    if(!ifs.is_open())
        cout<<"Error open text.txt\n";
    else
    if(!ofs.is_open())
        cout<<"Error open temporary file\n";
    else
    {
        cout<<"Enter symbol ch : ";cin>>ch;
        cout<<"Iput text : \n";
        while(!ifs.eof())
        {
            bWrite = true;
            ifs.read((char *)&rd,1);
            if(!ifs.eof())
            {
                cout<<rd;
                if(rd == ch)
                {
                    bFind = true;//Устанавливаем флаг найден ch в состояние истина
                    str += rd;
                    ofs.write((char *)&rd,1);
                }
                else//Удаляем все символы после ch
                if(!isalpha(rd) && bFind)
                    bFind = false;//Как только встретили небукву - сбрасываем флаг
                if(bFind)
                    bWrite = false;
                if(bWrite)
                {
                    str += rd;
                    ofs.write((char *)&rd,1);
                }
            }
        }
        ofs.close();
        ifs.close();
        if(remove("text.txt"))
            cout<<"\nError deliting text.txt\n";
        else
        if(rename("tmp.txt","text.txt"))
            cout<<"\nError rename tmp.txt in text.txt\n";
        else
            cout<<"\nOutput text :\n"<<str<<endl;
    }
    system("pause");
    return 0;
}
Миниатюры
Строки и файлы  
Stayer
 Аватар для Stayer
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 13
20.05.2012, 21:16  [ТС]     Строки и файлы #10
Вау))) да вы гений)

спасибо большое)

Добавлено через 2 часа 16 минут
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
ofs.write((char *)&rd,1);
можете расшифровать скажем так, это ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2012, 12:37     Строки и файлы
Еще ссылки по теме:

C++ Строки И Файлы
Строки и файлы C++
Строки и файлы C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
21.05.2012, 12:37     Строки и файлы #11
Цитата Сообщение от Stayer Посмотреть сообщение
можете расшифровать скажем так, это ?
- посмотри ofstream::write
Этот метод пишет исключительно чаровскую строку, поэтому если хотим записать символ то надо по ссылке на него писать, вот это я и делаю (char *)&rd. Таким образом можно и не строковые(чаровские) переменные писать в файл
Yandex
Объявления
21.05.2012, 12:37     Строки и файлы
Ответ Создать тему
Опции темы

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