4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
1

Работа с файловыми потоками

19.11.2017, 16:27. Показов 1061. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Мне нужно из Данного числового файла f. Выбрать все значения, которые делятся нацело на 2 и 4, но не делятся
на 6. Записать эти значения в файл g, а все остальные – в файл h.

Вот код:
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
#include <iostream>
#include <fstream>
#include <windows.h>
 
using namespace std;
 
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
/* открываем файлы */
     ofstream g("g.txt");//Открываем файл g
     ofstream h("h.txt");//открываем файл h
 
/* заполнение исходного файла */
  ifstream instrm ("f.txt");
  int t[10] = {0};
  instrm.read((char *)t, sizeof(t));      // чтение файла в массив
  instrm.close();                         // закрываем
  for(int i = 0; i < 10; i++)
        cout << t[i] << ' ';
 
/* обработка исходного файла */
for(int i = 0; i < 10; i++){
               if(!(t[i]%4)&&!(t[i]%6)){
                g<<t[i]<<"  ";}else{
                h<<t[i]<<"  ";}
       }
/*закрываем файлы */
       g.close();
       h.close();
system("pause");
         return 0;
}
Программа запускается, но на выходе значения в файлах g и h отображаются не верно.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.11.2017, 16:27
Ответы с готовыми решениями:

Работа с файловыми потоками
Подскажите. Мне нужно считывать из файла базу данных. Первый элемент каждой строки эта фамилия....

Работа с файловыми потоками
Получилось по заданию примерно как то так:Постановка задачи Входные данные: текстовый файл,...

Работа с файловыми потоками в С++.
Помогите разобратсья в программе: Дан символьный файл f. Подсчитать число вхождений в файл каждой...

Работа с файловыми потоками
Доброго времени суток! Мне нужно из Данного числового файла f. Выбрать все значения, которые...

10
174 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 719
19.11.2017, 16:32 2
C++
1
if((t[i]%4 == 0)&&(t[i]%6 != 0))
0
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
19.11.2017, 16:37  [ТС] 3
SlavaSokolov, тоже самое, но теперь значения из файла g перешли в файл h, что не является верным. Условие здесь верны, программа работала до того как я начал делать вывод из файла f в массив, мне кажется в этом блоке и ошибка.
0
174 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 719
19.11.2017, 16:58 4
Я туплю, так как 0 == false;
Почему бы не использовать такой вариант считывания?
C++
1
2
3
4
5
6
7
8
9
10
int main()
{
    const int n = 225;
    int a[n][n];
    fstream fs( "myfile.txt" );
    for( int i = 0; i < n; i++ )
        for( int j = 0; j < n; j++ )
            fs >> a[i][j];
    fs.close();
}
0
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
19.11.2017, 17:16  [ТС] 5
SlavaSokolov, только что попробовал, результат всё тот же.
0
174 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 719
19.11.2017, 17:22 6
Цитата Сообщение от Sergey Chepets Посмотреть сообщение
но на выходе значения в файлах g и h отображаются не верно.
Что вы имеете ввиду?
Я думаю... Думаю..
C++
1
if(!(t[i]%4)&&(t[i]%6))
0
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
19.11.2017, 18:16  [ТС] 7
SlavaSokolov, Вам не составит труда запустить эту программу? Просто мы говорим о разном. Я кажется где то напутал с типом. С условиями там всё нормально. Если нет остатка от деления на 4 и на 6 , то вводит это число в файл g, в другом случае - в файл h.
0
174 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 719
19.11.2017, 18:21 8
Sergey Chepets, угу всё верно. Рассматриваем:
C++
1
!(t[i]%4)&&!(t[i]%6)
Допустим берём 8:
C++
1
2
3
1. 8 делим с остатком на 4 получаем 0. Инвертим ноль получаем 1.
2. 8 делим с остатком на 6 получаем 2 Инвертим 1 получаем 0!
3. Логическое "И" нуля и единицы дают ложь! Цифра уходит в другой файл!
0
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
19.11.2017, 19:04  [ТС] 9
SlavaSokolov, так я этого и добиваюсь! но проблема не в том куда она уходит, а в каком виде, приходят либо нули, либо девятизначные числа!
0
174 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 719
19.11.2017, 19:20 10
Лучший ответ Сообщение было отмечено Sergey Chepets как решение

Решение

Цитата Сообщение от SlavaSokolov Посмотреть сообщение
!(t[i]%4)&&!(t[i]%6)
Это условие не удволетворяет требуемому:
Цитата Сообщение от Sergey Chepets Посмотреть сообщение
Выбрать все значения, которые делятся нацело на 2 и 4, но не делятся
на 6.
Добавлено через 9 минут
Ваше считывания я вообще не понимаю как работает. Моё всё нормально делает.
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 <iostream>
#include <fstream>
#include <windows.h>
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    /* открываем файлы */
    ofstream g("g.txt");//Открываем файл g
    ofstream h("h.txt");//открываем файл h
 
                        /* заполнение исходного файла */
    ifstream instrm("f.txt");
    int t[10] = { 0 };
    for (int i = 0; i < 10; i++) {
        instrm >> t[i];
        cout << t[i] << ' ';
    }
 
    /* обработка исходного файла */
    for (int i = 0; i < 10; i++) {
        if (!(t[i] % 4) && (t[i] % 6)) {
            g << t[i] << "  ";
        }
        else {
            h << t[i] << "  ";
        }
    }
    /*закрываем файлы */
    g.close();
    h.close();
    system("pause");
    return 0;
}
0
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
19.11.2017, 19:34  [ТС] 11
SlavaSokolov, Только когда я уже в десятый раз прочитал условие задачи заметил, что от меня требуют. Я думал, что нужно выводить числа которые делятся и на 4 и на 6. Прошу прощения за свою невнимательность! И благодарю за помощь!
0
19.11.2017, 19:34
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.11.2017, 19:34
Помогаю со студенческими работами здесь

Работа с файловыми потоками. Считать информацию
Здравствуйте! Допустим, мне необходимо считать из файла несколько строк, в каждой из которых по...

Работа с файловыми потоками в С. Текстовые файлы
Дан файл f, компоненты которого являются действительными числами. Найти: а) наибольшее из...

Работа с файловыми потоками. Выполнить проверку в готовом коде на верхний регистр
Хотел бы обратиться к аудитории этого сайта с данной проблемой-в программе, которую я написал, не...

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

Работа с потоками
Нужно посчитать сумму элементов в матрице nxn написал а она мне выдаёт ошибку. и теперь не знаю...

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


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

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

Новые блоги и статьи
Как преобразовать список списков в простой список в Python
bytestream 22.01.2025
При работе с Python разработчики часто сталкиваются с необходимостью обработки сложных структур данных, среди которых особое место занимают вложенные списки. Эти структуры представляют собой списки,. . .
Что такое GUID / UUID и как их создать
bytestream 22.01.2025
В мире разработки программного обеспечения существует постоянная потребность в уникальной идентификации объектов, записей и ресурсов. Эта задача становится особенно актуальной в распределенных. . .
Как добавить пустую директорию в репозиторий Git
bytestream 22.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с ситуацией, когда необходимо сохранить пустую директорию в репозитории. Данная задача может показаться простой на первый. . .
Как валидировать адрес email в JavaScript
bytestream 22.01.2025
JavaScript, как основной язык веб-разработки, предоставляет разработчикам множество инструментов для реализации эффективной валидации email-адресов. От простых встроенных решений до сложных. . .
Как заменить все вхождения подстроки в JavaScript
bytestream 22.01.2025
Строки в JavaScript представляют собой неизменяемые последовательности символов, что делает их обработку особенно интересной с точки зрения оптимизации и выбора правильного подхода к решению задач. . . .
Управление версиями пакетов в Node.js. В чем разница между тильдой (~) и кареткой (^) в package.json
bytestream 22.01.2025
В современной разработке программного обеспечения управление версиями пакетов играет ключевую роль в обеспечении стабильности и надежности проектов. Node. js, как одна из самых популярных платформ для. . .
Аутентификация на сайте с помощью формы
bytestream 21.01.2025
В современном цифровом мире безопасная аутентификация становится краеугольным камнем защиты веб-приложений и пользовательских данных. Каждый день миллионы людей используют различные онлайн-сервисы,. . .
Как получить индекс в цикле for в Python
bytestream 21.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только получить доступ к элементам последовательности, но и знать их позицию в процессе итерации. Индексация в циклах. . .
Как определить адрес, из которого локальный репозиторий Git был клонирован
bytestream 21.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса. При работе с Git разработчики часто сталкиваются с необходимостью. . .
Какая разница между операторами == и === в сравнениях в JavaScript
bytestream 21.01.2025
В мире веб-разработки JavaScript занимает особое место как динамический язык программирования, предоставляющий разработчикам широкий набор инструментов для создания интерактивных веб-приложений. . . .
Из чего и как собрать свой домашний кинотеатр
bt_guru 21.01.2025
Создание домашнего кинотеатра: от идеи до реализации В современном мире домашний кинотеатр стал неотъемлемой частью комфортного жилого пространства, предоставляя возможность наслаждаться. . .
Ошибки стиральных машин
bt_guru 21.01.2025
Современные стиральные машины представляют собой сложные электронные устройства, оснащенные множеством датчиков и систем контроля. Они способны самостоятельно определять вес загруженного белья,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru