Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.12.2018
Сообщений: 16
1

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

29.05.2019, 20:06. Просмотров 1246. Ответов 4
Метки нет (Все метки)


Дан текстовый файл, компонентами которого являются целые
числа, не равные нулю. Числа в файле идут в следующем
порядке: десять положительных, десять отрицательных, десять
положительных, десять отрицательных и т.д. Переписать
компоненты таким образом, чтобы они располагались в
следующем порядке: пять отрицательных, пять положительных и
т.д.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2019, 20:06
Ответы с готовыми решениями:

Работа с файлами , хотелось бы с windows system файлами
всем привет, нужна интересная идея по программированию, работа с файлами , хотелось бы с windows...

Лабораторная работа №5. Работа с файлами и алгоритмы сортировки
1. Написать функцию Load для считывания из текстового файла (например, Workers.txt) информации о...

Работа с файлами(Запись,чтение,работа с данными)
Здравствуйте, никак не могу осилить файлы... Для начала вот само задание: В справочной автовокзала...

Работа с файлами, чтение/работа со строкой
Доброго времени суток. Начал работать с C++ Builder 6. Есть текстовый файл .txt с различными...

4
161 / 68 / 39
Регистрация: 28.05.2019
Сообщений: 239
29.05.2019, 20:38 2
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
int main()
{
    ifstream stream("input.txt");
    vector<int> positive, negative;
 
    while (true)
    {
        int x;
        stream >> x;
        if (!stream.good())
            break;
        if (x >= 0)
            positive.push_back(x);
        else
            negative.push_back(x);
    }
 
    ofstream wstream("output.txt");
    auto positive_iterator = positive.begin();
    auto negative_iterator = negative.begin();
    while (true)
    {
        for (int i = 0; i < 5 && negative_iterator != negative.end(); ++i)
            wstream << *(negative_iterator++) << "\n";
        for (int i = 0; i < 5 && positive_iterator != positive.end(); ++i)
            wstream << *(positive_iterator++) << "\n";
        if (positive_iterator == positive.end() && negative_iterator == negative.end())
            break;
    }
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 16.12.2018
Сообщений: 16
29.05.2019, 20:42  [ТС] 3
А можешь написать эту программу через односвязные списки?
0
3317 / 2694 / 729
Регистрация: 25.03.2012
Сообщений: 9,733
Записей в блоге: 1
29.05.2019, 21:09 4
Лучший ответ Сообщение было отмечено ILYXA03 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    ofstream wstream("output.txt");
    ifstream stream("input.txt");
int pos[10], neg[10];
while (stream >> pos[0])
{
  for (int i=1; i<10; ++i)
    stream >> pos[i];
  for (int i=0; i<10; ++i)
    stream >> neg[i];
  for (int i=0; i<5; ++i)
    wstream<<pos[i];
  for (int i=0; i<5; ++i)
    wstream<<neg[i];
  for (int i=0; i<5; ++i)
    wstream<<pos[i+5];
  for (int i=0; i<5; ++i)
    wstream<<neg[i+5];
}
Добавлено через 1 минуту
ILYXA03, а ты не при наглел такие важные нюансы умалчивать?

Добавлено через 22 минуты
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
#include <iostream>
#include <fstream>
using namespace std;
struct node {
    int val;
    node* next;
    node(int _val, node* n) :val(_val), next(n) {}
}*top = NULL;
void push(int val) {
    node *nn = new node(val, top);
    top = nn;
}
void pop(int& val) {
    node* rv = top;
    top = top->next;
    val = rv->val;
    delete rv;
}
int main() {
    ofstream wstream("output.txt");
    ifstream stream("input.txt");
    int val;
    while (stream >> val)
    {
        push(val);
        for (int i = 1; i < 10; ++i)
        {
            stream >> val;
            push(val);
        }
        for (int j = 0; j < 2; ++j) {
            for (int i = 0; i < 5; ++i)
            {
                stream >> val;
                wstream << val << " ";
            }
            for (int i = 0; i < 5; ++i)
            {
                pop(val);
                wstream << val<<" ";
            }
        }
    }
}
1
0 / 0 / 0
Регистрация: 16.12.2018
Сообщений: 16
30.05.2019, 00:16  [ТС] 5
Слушай, а можешь пожалуйста объяснить код, вот например зачем там пустые {}? и все остальное
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2019, 00:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Работа с файлами
ДОБРЫЙ ВЕЧЕР! Такая задачка.. Написать программу по созданию базы данных ( например: имя,...

Работа с файлами
Разработать скрипт способный: проанализировать содержимое указанной папки и запустить имеющиеся...

работа с файлами
подскажите как можно сохранить/считать с файла *.dat и чтобы этот файл не смогли прочесть(даже...

Работа с файлами
К сожалению, не имею возможности обучаться методом проб и ошибок, потому оперирую теорией. FILE *...


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

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

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