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

Работа с текстовыми файлами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция которая принимает целое беззнаковое число. http://www.cyberforum.ru/cpp-beginners/thread398167.html
Вообщем надо написать функцию которая принимает целое беззнаковое число и возвращает true, если число четное и false в противном случае. #include <iostream.h> #include <math.h> void main...
C++ Сглаживание матрицы Народ, помогите пожалуйста с задачей. Никак не могу справиться. Условие на скриншоте. Вариант 9. Заранее спасибо. Соседями элемента Ак в матрице назовем элементы Аkl c i–1 ≤ k ≤ i+1, j–1 ≤ l ≤... http://www.cyberforum.ru/cpp-beginners/thread398164.html
Трёхзначное число C++
Составить программу, которая раскладывает ро розрядным единицам трёхзначное число, которое вводит пользователь с клавиатуры. #include <iostream.h> #include <conio.h> main() { int x, a, b,...
Строки символов . Текстовые файлы... C++
всем доброго времени суток! Помогите пожалуйста написать программу(кто может)...буду очень благодарен... Выполнить следующие задания: 1. Найти количество слов во фразе. 2. Найти в фразе...
C++ Все возможные комбнинации элементов массива http://www.cyberforum.ru/cpp-beginners/thread398115.html
Всем привет! Есть массив char array (s - размер массива). Нужно написать прогу, которая выведет все возможные КОМБИНАЦИИ элементов этого массива и выведет результат на экран. Например, если в...
C++ Найти разные элементы масива Здравствуйте, есть задача дана целочисленная последовательность (одномерный массив целых чисел). Написать программу нахождения количества различных элементов этой последовательности, уже 2 недели... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
05.12.2011, 21:14
Цитата Сообщение от xexew Посмотреть сообщение
а если файл пустой, то что делать? он просто в выходной файл выводит "М"
что это значит?
- т.к. файл пустой в нём содержится единственный символ EOF вот его то ifs.get(ch); впихивает в ch(это было первым подозрением), НО с EOF в этот цикл
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
while(!ifs.eof())
не зайдём. Поэтому М обусловлена тем, что просто открыли ofs
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
ofstream ofs("result.txt");
я предлагаю ofs инициализировать только если исходный файл не пустой, сейчас подправлю

Добавлено через 4 минуты
xexew, вот так думаю будет защита от пустого файла с исходными данными
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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    long nCount;
    char ch, buf;
    ifstream ifs("text.txt");
    ofstream ofs;
    if(!ifs)
        cout<<"error open text.txt\n";
    else
    {
        ifs.get(ch);
        if(!ifs.eof())
            ofs.open("result.txt");
    }
    if(ifs != NULL && ofs != NULL)
    {
        while(!ifs.eof())
        {
                nCount = 1;
                while(!ifs.eof())
                {
                        ifs.get(buf);
                        if(buf == ch && buf)
                                nCount++;
                        else
                                break;
                }
                if(1 < nCount)
                {
                        cout<<nCount;
                        ofs<<nCount;
                }
                ofs<<ch;
                cout<<ch;
                ch = buf;
        }
        ifs.close();
        ofs.close();
        cout<<"<-END TEXT\n";
    }
    system("pause");
    return 0;
}
Жду результатов теста
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru