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

Функция getline не считывает пробелы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Битовые операции http://www.cyberforum.ru/cpp-beginners/thread440673.html
Ребят, нужен алгоритм, а желательно и код для реализации следующей функции: Есть скажем числа от 0 до 7, т.е. 8 (2^3) Теперь взглянем на их представления в разрядной сетке (в дальнейшем будем рассматривать только младшие 3 бита, ибо это есть степень 2 и остальные разряды у этих чисел будут одинаковые): 0 -> 000 1 -> 001 2 -> 010 3 -> 011 4 -> 100 5 -> 101
C++ Не правильно работает 1 из счетчиков Помогите, не правильно считает счетчик nw, в упор не понимаю по чему... #include <conio.h> #include <stdio.h> #define eof -1 #define yes 1 #define no 0 int main() { http://www.cyberforum.ru/cpp-beginners/thread440640.html
C++ Вопрос по работе с файлами в Visual Studio
Написал программу для работы с файлом в Visual Studio. Iostream подключил. Но такие вот привычные записи, как, например, ifstream fin("c:\\projects\\text1.txt", ios::in | ios::nocreate); visual studio использовать не хочет. На fin.seekg(0, ios::end); тоже рукается, типа fin должен быть классом. Можете подсказать, что нужно исправить / подключить, чтоб visual мог работать с такими функциями?
C++ Работа с классами
Составить описание объектного типа TMatr, что обеспечивает размещение матрицы произвольного размера с возможностью изменения числа строк и столбцов, вывод на экран подматрицы любого размера и всей матрицы.
C++ Динамическая матрица http://www.cyberforum.ru/cpp-beginners/thread440623.html
помогите написать 2 проги 1) 2) по критериям: 1)Динамические массивы обязательны 2)работать через адресную арифметику, - запрещены 3)распечатать не только значения но и адреса
C++ Обявление классов Вобщем получалась такая ситуация, есть 2 класса class A { public: SomeMethod( B *param ); } class B { public: SomeMethod( A *param ); } Как указать первому классу что второй обьявлен? Написал перед классом А строку подробнее

Показать сообщение отдельно
Gooman
10 / 10 / 0
Регистрация: 03.10.2010
Сообщений: 350
04.02.2012, 15:09  [ТС]     Функция getline не считывает пробелы
Цитата Сообщение от Kastaneda Посмотреть сообщение
fout в stdafx.h чтоли объявлен?
Нужно убрать строчку с закрытием файла fout.

Добавлено через 1 час 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
#include "stdafx.h"
#include "iostream"
#include "fstream"
//#include "stdio.h"
using namespace std;
 
void readfile (char *buf, ifstream fin); // считывает содержимое файла в массив литер buf
 
int _tmain(int argc, _TCHAR* argv[])
{
    // создание входного потока и открытие файла
    ifstream fin("c:\\projects\\text1.txt", ios::in);
    if (!fin)
    {
        cout << "Can't open input file" << endl;
        system("pause");
        return -1;
    } 
 
    // создание выходного потока и открытие файла
    ofstream fout("c:\\projects\\text2.txt", ios::out);
    if(!fout)
    {
        cout << "Can't create output file" << endl;
        system("pause");
        return -1;
    }
 
    char buf[255];
    char lim;
    int i = 0;
    int good_str = 0; // 1, если строка содержит только двузначные цифры
    while (!fin.eof())      // пока не конец файла
    {
        good_str = 0;
        i = 0;
        cout<<endl;
        fin.getline(buf, 255, lim = '\n');  // считать одну строку
        while (buf[i])                      // рассмотреть каждый символ этой строки
        {
            if (buf[i] == '\n')
                continue;
 
            if (buf[i] >= '1' && buf[i] <= '9')             // если текущий символ - цифра
                if (buf[i+1] >= '0' && buf[i+1] <= '9')     // если следующий символ тоже цифра
                    if (buf[i+2] >= '0' && buf[i+2] <= '9') // если и  третий символ - цифра
                        good_str = 0;    // то строка нам не подходит
                    else 
                        good_str = 1;    // иначе число имеет 2 знака, строка подходит.
 
            else
                good_str = 0;
 
            i++;                                    // переместить индекс массива buf вперед
        }
        if (good_str)
            cout << buf;            
    }
    
 
    fin.close();
    fout.close();
    cout << endl;
    cout << endl;
    system("pause");
    return 0;
}
А если убрать строки 51 и 52, то начинает хоть что-то выводиться. Однако выводятся и строки, где есть трехзначные цифры. Что нужно исправить, помогите, пожалуйста
Напомню задание: мне надо было записать в другой файл (вывести на экран) строки, где есть только двухзначные цифры. Ну в строках, естественно, не только цифры, а просто предложения любые.
 
Текущее время: 21:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru