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

работа с потоком - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывод элементов из матрицы http://www.cyberforum.ru/cpp-beginners/thread266716.html
Дана матрица любого размера, состоящая из 0 и 1. Нужно вывести только нули если их индексы кратны 3.
C++ Передача динамического массива структур в функцию Доброго времени суток:) Имеется входной файл,который представлен в виде пар через запятую (010)-(110),(001)-(100),... надо загнать его в массив структур,чтобы потом с ним работать.Проблема с функцией,которая должна записывать эти данные. Вот что написала: const int kol=3; int kol_mass=0; //кол-во эл-тов массива структур struct F http://www.cyberforum.ru/cpp-beginners/thread266708.html
Разбор строки C++
Здравствуйте. В stdin программы приходит строка вида domain=d.ru&type=delete&file=std&... При этом мне необходимо получить значение domain и type. По type нужно выбрать нужное действие (case). Собственно проблема с разбором строки, приходящей на stdin (в php есть замечательная функция explode(), аналога которой в c++ я не нашел). Получаю я ее с помощь int main() { string input;...
C++ Курсовая.Напоминалка важных событий
Здравствуйте. Помогите пожалуйста,как можно выполнить это задание..какие функции написать основные и вообще с чего начать! Заранее спасибо! вот задание : Программа позволяющая сохранять важные события (дни рождения, встречи и проч.) и сигнализировать (звук, всплывающее окошко с сообщением) в момент их наступления. События должны иметь разные настраиваемые характеристики (повторение дней...
C++ Функция, которая меняет местами первый и последний элемент списка http://www.cyberforum.ru/cpp-beginners/thread266676.html
Список, состоящий из целых чисел. Проблема с функцией first_to_last(), которая по идее должна менять местами содержимое полей данных первого и последнего элемента. Вот только первый меняется на последний, а последний не меняется. Почему? Как исправить? #include "stdafx.h" #include <iostream> using namespace std; struct node { int d; node* next; };
C++ Работа с символьным массивом Очень долго сижу над этой программой подскажите если можно ! Задача : Из всех предложений текста веденных пользователем с клавиатуры найти минимальное и вывести его на экран . ( Использовать cin /cout) Я так понял там надо проверять условие того будет ли элемент равен точки если нет то накапливать количество символов а если да то обнулить элемент накопления . но как потом их сравнить ? В... подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2798 / 1574 / 246
Регистрация: 03.05.2010
Сообщений: 3,651
30.03.2011, 06:54     работа с потоком
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
/////////////////////////////////////////////////////////////////////////////////////////
//есть текстовый файл с примерно таким сожержанием:
//
//1 5 test 2 9 111
//22 12 99 proverka 10 1
//1 23 10 schet 50
//12 44 34 74 29
//
//и т.д.
//Количество символов и количество строк не больше 80.
//
//Нужно считать все что есть в файле, вывести исходные данные, а затем только строки, 
//которые содержат двузначные числа (т.е из примера выше 1 строка вывестись не должна)
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cctype>
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string         T_str;
typedef std::vector<T_str>  T_strings;
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    const T_str  FILENAME = "f.txt";
    std::ofstream  ofile(FILENAME.c_str());
    ofile << "1 5 test 2 9 111"
          << std::endl 
          << "22 12 99 proverka 10 1"
          << std::endl 
          << "1 23 10 schet 50"
          << std::endl 
          << "12 44 34 74 29"
          << std::endl;
 
    std::ifstream  ifile(FILENAME.c_str());  
    
    T_strings  lines;
    T_str      line;
    while(getline(ifile, line))
    {
        lines.push_back(line);
    }
 
    std::cout << "Содержимое файла \""
              << FILENAME
              << "\":"
              << std::endl;
    std::copy(lines.begin(), lines.end(), 
              std::ostream_iterator<T_str>(std::cout, "\n"));
    std::cout << std::endl;
 
    struct  T_line_not_contains_two_digit_number
    {
        bool  operator() (const T_str&  s)
        {
            std::istringstream  ssin(s);        
            T_str  word;            
            while(ssin >> word)
            {
                bool  is_two_digit_number =    word.size() == 2
                                            && isdigit(word[0])
                                            && isdigit(word[1]);
 
                if(is_two_digit_number) return  false;
            }
            return  true;
        }
    };
 
    std::cout << "Строки файла \""
              << FILENAME 
              << "\", содержащие двузначные числа:"
              << std::endl;
    std::remove_copy_if(lines.begin(), lines.end(), 
                        std::ostream_iterator<T_str>(std::cout, "\n"),
                        T_line_not_contains_two_digit_number());
    std::cout << std::endl;
}
 
Текущее время: 07:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru