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

Библиотеки ввода вывода. - C++

Восстановить пароль Регистрация
 
Aliru777
0 / 0 / 0
Регистрация: 03.11.2011
Сообщений: 71
21.03.2012, 09:36     Библиотеки ввода вывода. #1
Доброе утро!
Есть задача:
Дан файл с текстом. Проверить, сколько раз в тексте встречается какой-либо отрезок ряда 0123456789 длины не меньшей, чем 2. Записать все найденные отрезки в другой файл.
Вопрос скорее в том где почитать о работе с файлами.
Я смотрел Дейтела,Прата,Шилдта,Литмана,гугл - там везде все разное и не понятно что испотльзовать.
Т.е. массивы,строки,классы...это везде одинаково,но это то ifstream, то getline, то еще что-то
Подскажите пожалуйста есть ли инфо по данной теме собранная вместе и доступно объяснена.

Добавлено через 14 часов 50 минут
уже вообщем вечер
я написал чего то такого
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
// lw4 file work.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>q
#include <string>
#include <cctype>
#include <iostream>
#include <conio.h>
#include <fstream>
 
using namespace std;
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int year=10;
    char c1[100];
    string s="";
    string s1="";
    char key[]("1234567890");
    ifstream f_in("d:\\d.txt");
       if (!f_in) cout<<"ERROR!!!";
       while (f_in)
       {
                getline(f_in,s1);
                s+=s1;
                cout<<s1;
       }
       cout<<"\n";
       cout<<s<<"\n";
       year=s.size();
       for (int i=0; i<year; i++)
       {
           if ((s[i]>0 && s[i]<47) || (s[i]>58 && s[i] < 127))
               s.erase(i,i+1);
       }
    getch();
    return 0;
}
но чего то оно совсем странное выдает
что здесь не так

Добавлено через 6 часов 32 минуты
вчера уже хотел купить решение,не нашел фрилансера)))
Издеваясь над кодом около 2х дней,из них около 25 часов не спя пришел к следующему
Теперь у меня есть сторка с цифрами и заканчивается 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
// lw4 file work.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>q
#include <string>
#include <cctype>
#include <iostream>
#include <conio.h>
#include <fstream>
 
using namespace std;
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
      int year=0;
      string s="";
      string s1="";
      ifstream f_in("d:\\d.txt");
                  if (!f_in) cout<<"ERROR!!!";
             while (f_in)
       {
                getline(f_in,s1);
                s+=s1;
                cout<<s1;
       }
       cout<<"\n";
       cout<<s<<"\n";
       year=s.size();
       s1="";
       for (int i=0; i<year; i++)
            if (s[i]>47 && s[i]<58)
                s1+=s[i];
              cout<<s1<<"\n";
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2012, 09:36     Библиотеки ввода вывода.
Посмотрите здесь:

C++ потоки ввода/вывода.
C++, переопределение ввода-вывода C++
Манипуляторы ввода/вывода. C++
C++ Операторы ввода и вывода
C++ Система ввода/вывода
Стандартные библиотеки ввода/вывода C++
Кодировка ввода и вывода C++
C++ Поток ввода-вывода

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
scofielcl
4 / 4 / 0
Регистрация: 11.09.2011
Сообщений: 143
21.03.2012, 10:19     Библиотеки ввода вывода. #2
Рабочий код ,но :

1.Выводит вхождения целиком(т.е если в нем есть буквы или другие символы)
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
int main()
{
    string loc,att;//loc выводимая строка , в att сохраняем текущую букву строки для проверки
    ifstream fin("poisk.txt");
    if(!fin){cout<<"net faila";return 0;}
    
    while(fin>>loc !=NULL){  //пока не ноль
        int siz= loc.size();//размер текущей строки
        for(int i=0;i<siz-1;i++){ //цикл для проверки строки
        att = loc.at(i);// запись i  буквы в att
        if(att.find_first_of("0123456789") != string::npos){ //поиск в att  вхождения
            att = loc.at(i+1); //если 1 вхождение сущ-ет ,проверяем втроую буквы
            if(att.find_first_of("0123456789") != string::npos){
                cout<<"Slovo: "<<loc<<endl; //выводим все слово целиком а не только вхождение
                break;
            }
            }
                
        }
        
    }
 
    
}
Yandex
Объявления
21.03.2012, 10:19     Библиотеки ввода вывода.
Ответ Создать тему
Опции темы

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