Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Mud
1 / 1 / 0
Регистрация: 24.06.2016
Сообщений: 143
1

Вывести в другой файл все неповторяющиеся символы исходного файла

03.06.2017, 17:25. Просмотров 837. Ответов 2
Метки нет (Все метки)

Файл заполнен символами латинского алфавита. Выведите в другой файл все не повторяющиеся символы исходного файл. Дополнительный массив не использовать
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2017, 17:25
Ответы с готовыми решениями:

Файлы. Вывести в другой файл все неповторяющиеся числа исходного файла
здравствуйте;) я учусь на 1 курсе и мы про программированию не очень далеко...

Переписать в другой файл все цифры исходного файла
Дан файл f, элементами которого являются символы. Переписать в файл g все цифры...

Перезаписать все строки из исходного файла в новый заменив все символы 'м' на 'М'
Задание элементарное: перезаписать все строки из одного файла в новый заменив...

Дан текстовый файл F. Переписать в другой файл G все символы, отличные от букв и пробела
Дан текстовый файл F. Переписать в другой файл G все символы, отличные от букв...

Файловый поток: записать в другой файл различные числа исходного файла
Дан файл целых чисел. Записать в другой файл различные числа исходного файла.

2
Геомеханик
788 / 595 / 937
Регистрация: 26.06.2015
Сообщений: 1,409
04.06.2017, 05:35 2
Лучший ответ Сообщение было отмечено Mud как решение

Решение

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
#include <iostream>
#include <fstream>
#include <sstream>
#include <stdint.h>
#define _i64(i) static_cast<uint64_t>((i))
 
//только для ascii
void output_unique(std::ostream& _out, std::istream& _in){
    char c;
    unsigned x;
    uint64_t a = 0, b = 0, a1 = 0, b1 = 0;
    while(_in.get(c) && !_in.fail()){
        if(c < 0)
            continue;
        else if(c < 0x40){
            x = unsigned(c);
            if(!((a >> x) & 1))
                a  |= _i64(1) << x;
            else
                a1 |= _i64(1) << x;
        } else {
            x = unsigned(c - 0x40);
            if(!((b >> x) & 1))
                b  |= _i64(1) << x;
            else
                b1 |= _i64(1) << x;
        }
    }
 
    const unsigned n = sizeof(uint64_t) << 3;
    for(x = 0; x < n; ++x){
        if(((a >> x) & 1) && !((a1 >> x) & 1))
            _out << (char)x;
    }
 
    for(x = 0; x < n; ++x){
        if(((b >> x) & 1) && !((b1 >> x) & 1))
            _out << (char)(x + 0x40);
    }
 
    if(!_out.fail())
        _out.flush();
}
 
int main(void){
    char s[] = "0011223445667899\nABCDEFABCDEFabcdefabcdef xyz XYZ~";
    std::istringstream sp(s);
    output_unique(std::cout, sp);
 
/*  ввод из файла
    std::ifstream fin("input.txt");
    std::ofstream fout("output.txt");
    output_unique(fout, fin);
    fin.close();
    fout.close();
*/
    std::cin.get();
    return 0;
}
1
Mud
1 / 1 / 0
Регистрация: 24.06.2016
Сообщений: 143
04.06.2017, 19:02  [ТС] 3
Геомеханик, а почему в консоли выводит вот эту строку 3578XYZxyz~ ?

Добавлено через 4 минуты
Геомеханик, я все понял, извините))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2017, 19:02

Сделать функции заполнения исходного файла и обработки массива с записью в другой файл
Здравствуйте! Требуется: Считать все числа из файла (количество чисел -...

Дан символ 'C' (прописная латинская буква) и текстовый файл. Создать строковый файл, содержащий все слова из исходного файла
Дан символ 'C' (прописная латинская буква) и текстовый файл. Создать строковый...

в файле символы. вывести в другой файл сумму их кодов
идет зацикливание, не знаю почему FILE *one,*two; char n; int sum;...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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