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

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

Войти
Регистрация
Восстановить пароль
 
steve09
1 / 1 / 0
Регистрация: 26.04.2009
Сообщений: 216
#1

Работа с файлами - C++

08.06.2009, 13:27. Просмотров 672. Ответов 7
Метки нет (Все метки)

помогите пжл написать программу для удаления энтеров из файла txt
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2009, 13:27     Работа с файлами
Посмотрите здесь:

C++ РАБОТА С ФАЙЛАМИ
Работа с файлами в C++ C++
C++ работа с файлами
Работа с файлами C++
C++ Работа с файлами
C++ Работа с файлами в С++
C++ работа с файлами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Шерсть-На-Носу
40 / 40 / 1
Регистрация: 30.01.2009
Сообщений: 168
08.06.2009, 21:00     Работа с файлами #2
Открой файл как бинарный, читай по одному символу, все символы, кроме 0x0A и 0x0D пиши в другой файл. В результате получишь тот же файл, но без переносов.
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
08.06.2009, 21:14     Работа с файлами #3
А можно и попроще:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <fstream>
using namespace std;
 
void main(){
    char str[128];
    ifstream in;
    in.open("C:\\123.txt");
    if (!in.fail()){
        ofstream out("C:\\123_out.txt");
        in >> str;
        out << str;
        while(!in.eof()){
            in >> str;
            out << ' ' << str; 
        }
    }
}
steve09
1 / 1 / 0
Регистрация: 26.04.2009
Сообщений: 216
11.06.2009, 10:39  [ТС]     Работа с файлами #4
Цитата Сообщение от FunDuck Посмотреть сообщение
А можно и попроще:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstream>
using namespace std;
 
void main(){
    char str[128];
    ifstream in;
    in.open("C:\\123.txt");
    if (!in.fail()){
        ofstream out("C:\\123_out.txt");
        in >> str;
        out << str;
        while(!in.eof()){
            in >> str;
            out << ' ' << str; 
        }
    }
 
}
FunDuck, не могли бы Вы прокомментировать программу?
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
11.06.2009, 12:09     Работа с файлами #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstream>
using namespace std;
 
void main(){
        char str[128];
        ifstream in;
        in.open("C:\\123.txt");// Открываем исходный файл 
        if (!in.fail()){//Если открыли
                ofstream out("C:\\123_out.txt");//Открываем файл, в который будем писать
                in >> str;//Считываем первое слово
                out << str;//Пишем его в файл
                while(!in.eof()){//Пока исходный файл не закончился
                        in >> str;//Считываем слова
                        out << ' ' << str; //И записываем их в новый файл через пробел
                }
        }
 
}
Somebody
2777 / 1591 / 142
Регистрация: 03.12.2007
Сообщений: 4,170
Завершенные тесты: 1
11.06.2009, 15:29     Работа с файлами #6
main() в C++ вообще должен возвращать int.
Имхо, с чтением по строкам не проще, тем более, что длина строки ограничена 127 символами, проверки этой длины нет; вот вариант с посимвольным чтением:
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
#include <fstream>
 
using namespace std;
 
int main()
{
    ifstream in("file.in", ios::in | ios::binary);
    ofstream out("file.out", ios::out | ios::binary);
    if (!in || !out)
    {
        in.close();
        out.close();
        return -1;
    }
    while (!in.eof())
    {
        char c = in.get();
        if (c != '\r' && c != '\n')
            out.put(c);
    }
    in.close();
    out.close();
    return 0;
}
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
11.06.2009, 15:40     Работа с файлами #7
Цитата Сообщение от Somebody Посмотреть сообщение
main() в C++ вообще должен возвращать int.
Почему???
Цитата Сообщение от Somebody Посмотреть сообщение
Имхо, с чтением по строкам не проще, тем более, что длина строки ограничена 127 символами, проверки этой длины нет;
Ну не по строкам а по лексемам.... а чтобы переполнение буфера было надо придумать слово длинной больше 128 символов
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2009, 13:11     Работа с файлами
Еще ссылки по теме:

C++ Работа с файлами
C++ работа с файлами
C++ Работа с файлами
Работа с файлами C++
Работа с файлами C++

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

Или воспользуйтесь поиском по форуму:
Somebody
2777 / 1591 / 142
Регистрация: 03.12.2007
Сообщений: 4,170
Завершенные тесты: 1
12.06.2009, 13:11     Работа с файлами #8
Цитата Сообщение от FunDuck Посмотреть сообщение
Почему???
По стандарту. С void даже не компилируется.
Цитата Сообщение от FunDuck Посмотреть сообщение
Ну не по строкам а по лексемам.... а чтобы переполнение буфера было надо придумать слово длинной больше 128 символов
Да, но таким образом несколько пробелов подряд превращаются в один, а добрые люди, которые сделают плохой файл, всегда найдутся.
Yandex
Объявления
12.06.2009, 13:11     Работа с файлами
Ответ Создать тему
Опции темы

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