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

Файлы. Вывести в другой файл все неповторяющиеся числа исходного файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Файлы. Удалить все числа между первым максимальным и последним минимальным числом http://www.cyberforum.ru/cpp-beginners/thread780891.html
здравствуйте;) я учусь на 1 курсе и мы про программированию не очень далеко ушли, так что решения должны быть "для чайников":) помогите чем сможете, заранее спасибо) вот такая у меня работа: 1) дан входной файл, каждая строка которого содержит одно целое число. Удалить все числа между первым максимальным и последним минимальным числом. Дополнительный массив не использовать.
C++ Вижуал СИпп 2010 ошибка при компиляции Приветствую, форумчане! Установил Visual CИ++ работал исправно, ни с того ни с сего выдает при компиляции ошибку Сигнатура проблемы: Имя события проблемы: APPCRASH Имя приложения: Керниган.exe Версия приложения: 0.0.0.0 Отметка времени приложения: 51129f15 Имя модуля с ошибкой: MSVCR100D.dll Версия модуля с ошибкой: 10.0.30319.1 Отметка времени модуля с ошибкой: 4ba1dbd4... http://www.cyberforum.ru/cpp-beginners/thread780849.html
последовательность и запись файлов C++
Условия задания 1: Найти среднее арифметическое положительных элементов данной последовательности. Условия задания 2: В выходную последовательность записать только те числа, которые меньше суммы своих соседей (если первое число меньше второго, записываем первое число; если второе число меньше суммы первого и третьего числа, записываем второе число, если последнее меньше предпоследнего,...
Массив: найти сумму элементов матрицы в нижнем треугольнике C++
найти сумму элементов матрицы в нижнем треугольнике
C++ Гипотенуза и катет http://www.cyberforum.ru/cpp-beginners/thread780830.html
Добрый день! У меня такие проблемы: 1) Вечная моя проблема - это то, что мой компилятор не хочет компилировать задачу! Т.е. когда я написал программу он пишет, что не может найти файл или что-то в этом роде. 2) Во-вторых я не понимаю, где ошибка в этой программе: #include <iostream> int main() { double a, b;
C++ Разбор полётов. Класс десятичное большое число Код: # include <iostream> using namespace std; class bigfig { char fig; int length; public: bigfig(char* f); //конструктор подробнее

Показать сообщение отдельно
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
07.02.2013, 01:30     Файлы. Вывести в другой файл все неповторяющиеся числа исходного файла
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
#include <fstream>
#include <iostream>
#include <cstdlib>
using namespace std;
int main ()
{
    int temp=0, temp2=0;
    int count=0;
    ifstream infile("in.txt");
    ofstream newfile("in.txt");
    ofstream outfile ("out.txt");
    // новый файл с числами, если файл не открылся, выход из программы
    if(!newfile.is_open()) exit (1);
    for (int i=0, n=20; i<n; ++i)
        newfile << rand() % n << endl;
    newfile.close();
    // проверяем, если файлы не  открылись - выход
    if(!infile.is_open() || !outfile.is_open()) exit (1);
    // узнаем количесьво записей
    while(infile >> temp)
        count++;
    infile.close();
    int *mas=new int [count];
    // читаем данные из файла в массив
    infile.open("in.txt");
    int i=0;
    while(infile >> temp)
        mas[i++]=temp;
    // находим неповторяющиеся записи и переписываем в новый файл
    for (int i=0, flag=0; i<count; ++i) {
        for(int j=i+1; j<count-1; ++j)
            if (mas[i]==mas[j]) {
                flag=1;
                break; // если повьорилось выходим из внутреннего цикла 
            }
        if(!flag) outfile<<mas[i]<<endl;
        flag=0;
    }
    infile.close();
    outfile.close();
    delete []mas;
    return 0;
}
Добавлено через 26 минут
можно изменить кусок 20-30 строки
C++
1
2
3
4
5
6
7
8
while(infile >> temp)
        count++;
    infile.clear();
    infile.seekg(0, ios_base::beg);
    int *mas=new int [count];
    // читаем данные из файла в массив
    for (int i=0; infile >> temp; ++i)
        mas[i]=temp;
Добавлено через 11 минут
и вариант без массива
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
#include <fstream>
#include <iostream>
#include <cstdlib>
using namespace std;
int main ()
{
    int temp=0;
    int count=0;
    int tmp=0;
    ifstream infile("in.txt");
    ofstream newfile("in.txt");
    ofstream outfile ("out.txt");
    // новый файл с числами, если файл не открылся, выход из программы
    if(!newfile.is_open()) exit (1);
    for (int i=0, n=25; i<n; ++i)
        newfile << rand() % n << endl;
    newfile.close();
    // проверяем, если файлы не  открылись - выход
    if(!infile.is_open() || !outfile.is_open()) exit (1);
    // узнаем количесьво записей
    long int curpos=0;
    bool flag=false;
    while(infile >> temp) {
        curpos=infile.tellg();
        flag=false;
        while(infile >>tmp)
            if (tmp==temp) {
                flag=true;
                break;
            }
        if (!flag) outfile << temp << endl;
        if (infile.eof()) infile.clear();
        infile.seekg(curpos, ios_base::beg);
    }
    infile.close();
    outfile.close();
    return 0;
}
 
Текущее время: 00:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru