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

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

Войти
Регистрация
Восстановить пароль
 
Глупец
23 / 23 / 1
Регистрация: 17.05.2011
Сообщений: 141
#1

Как считывать все символы ofstream - C++

19.06.2011, 17:41. Просмотров 664. Ответов 4
Метки нет (Все метки)

Здравствуйте.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
char** m_str=new char*[10000000],*s_buf=new char[1024];
    std::ifstream ifs;
    ifs.open("text.txt");
    int i=0,ii;
    if(ifs.is_open()){
        while(ifs){
            ii=-1;
            while(s_buf[++ii]!='\n')  //<<<<<<<КОСЯК
                ifs>>s_buf[ii];
            m_str[i]=new char[ii+1];
            strcpy(m_str[i],s_buf);
            std::cout<<m_str[i]<<std::endl;
            i++;
        }
    }
    ifs.close();
так вот как собственно считать и конец строки тоже и пробелы и прочее ибо не читаемые символы эта зараза пропускает...
да и как сделать чтение ДО EOF потому что сейчас он читает ВЕСЬ поток, а мне эт не надо...
Подскажите пожалуйста.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2011, 17:41     Как считывать все символы ofstream
Посмотрите здесь:

Не получается чтобы он все символы с текста читал и типа счетчика который считает одинаковые символы как один и плюсует их....Как сделать правильно??? - C++
#include&lt; stdio.h&gt; #include&lt; conio.h&gt; #include&lt; string.h&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cmath&gt; using...

Считывать с клавиатуры символы до тех пор, пока не введен символ "$" - C++
Задача: Напишите программу, которая считывает с клавиатуры символы до тех пор, пока не будет введен символ &quot;$&quot;. Организуйте в программе...

Создать очередь, содержащую любые символы. Удалить из очереди все символы, не являющиеся буквами или цифрами - C++
Используя динамические структуры, реализовать следующие задания. Вспомо*гательные функции должны быть написаны самостоятельно (Встроенную...

Как убрать все управляющие символы из wchar_t ? - C++
Читаю все файлы в папке подряд (текстовые разумеется). Записываю содержимое в другой файл. Так вот, при чтении последней строки без...

Как пропустить все символы до конца строки? - C++
Проблема в том,что я считываю командой fgets максимум 1000 символов (пишу мини шел), и если на вход подается строчка длиной больше 1000...

Как объявить ofstream глобально - C++
хочу чтобы не только в main но и во всех ф-ях было доступно ofstream fout(&quot;out.txt&quot;); задаю эту штуку глобально ошибка

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт С++
1908 / 1440 / 110
Регистрация: 29.05.2011
Сообщений: 2,995
19.06.2011, 18:07     Как считывать все символы ofstream #2
C++
1
2
while(s_buf[++ii]!='\n')  //<<<<<<<КОСЯК
    ifs>>s_buf[ii];
У тебя условие по ещё не считанному символу. Сначала переход к следующему, а потом его проверка.
Ну и вообще, раз нужны все символы, то getline() тебе в помощь.
Глупец
23 / 23 / 1
Регистрация: 17.05.2011
Сообщений: 141
19.06.2011, 18:17  [ТС]     Как считывать все символы ofstream #3
Спасибо, я как-то так это переписал..
C++
1
2
ii=0;
while((s_buf[ii]=ifs.get())!='\n')ii++;
grizlik78
Эксперт С++
1908 / 1440 / 110
Регистрация: 29.05.2011
Сообщений: 2,995
19.06.2011, 18:29     Как считывать все символы ofstream #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Наверное, это могло бы выглядеть примерно так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
char** m_str=new char*[10000000],*s_buf=new char[1024];
        std::ifstream ifs;
        ifs.open("text.txt");
        int i=0,ii;
        if(ifs.is_open()){
                while(ifs){
                        ifs.getline(s_buf, 1024);
                        if (0 == ifs.gcount())
                            break;
                        m_str[i]=new char[ifs.gcount()+1];
                        strcpy(m_str[i],s_buf);
                        std::cout<<m_str[i]<<std::endl;
                        i++;
                }
                ifs.close();
        }
Если вдруг встретится строка длиннее 1023 байт, считывание завершится, но здесь я не уверен.

Добавлено через 7 минут
А использование в качестве временного буфера string позволило бы не задумываться о длине строки. В разумных пределах, разумеется.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2011, 19:18     Как считывать все символы ofstream
Еще ссылки по теме:

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

Упорядочить символы в алфавитном порядке, при этом все повторяющиеся символы должны быть удалены и переписать новый текст в файл D - C++
23. Задан текстовый файл С, состоящий из произвольной последовательности буквенных символов. Упорядочить символы в алфавитном порядке, при...

Как создать текстовый файл не через ofstream? - C++
До недавних пор я пользовался Си-шной библиотекой ввода-вывода, но сейчас решил перейти на библиотеки C++, ибо они намного удобней. ...

Дан файл, компонентами которого являются символы. Переписать все символы в новый файл в обратном порядке. - C++
Работа с текстовыми файлами. Дан файл, компонентами которого являются символы. Переписать все символы в новый файл в обратном порядке.

Написать функцию которая в строке заменяет все символы верхнего регистра в символы нижнего регистра - C++
Здравствуйте. помогите написать программу. Написать функцию которая в строке заменяет все символы верхнего регистра в символы нижнего...

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


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

Или воспользуйтесь поиском по форуму:
Глупец
23 / 23 / 1
Регистрация: 17.05.2011
Сообщений: 141
19.06.2011, 19:18  [ТС]     Как считывать все символы ofstream #5
Спасибо большое!
а модешь дать ссылку на какю -нибудь (для Глупцов) написанную литературу по потокам?)
Yandex
Объявления
19.06.2011, 19:18     Как считывать все символы ofstream
Ответ Создать тему
Опции темы

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