Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 21.09.2020
Сообщений: 23
1

Получить номер первого элемента, в котором файлы отличаются

12.04.2021, 18:34. Показов 1408. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
2. Даны два файла с одинаковым количеством компонентов, компонентами которых являются
символы. Выяснить, совпадают ли попарно их компоненты. Если нет, получить номер первого
элемента, в котором эти файлы отличаются.
Для работы с файлами необходимо подключить заголовочный файл <fstream>
Файл – именованный набор байтов, который может быть сохранен на некотором накопителе.
Под файлом понимается некоторая последовательность байтов, которая имеет своё, уникальное имя.
Под именем файла понимается не только его название, но и расширение, например: file.txt и file.dat.
Полное имя файлов – это полный адрес к директории файла с указанием имени файла, например:
D:\docs\file.txt
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.04.2021, 18:34
Ответы с готовыми решениями:

Два файла с символами: получить номер первого элемента, в котором эти файлы отличаются
дано два файла с одинаковым количеством компонент, компонентами которого являются символы выяснить...

Получить порядковый номер первого четного элемента вводимой последовательности
program pro; var N : integer ; ci,i : integer ; c : integer ; A : array of integer; begin ...

Найти номер первого минимального элемента среди элементов, больших Т1 и расположенных правее первого элемента, равного Т
Найти номер первого минимального элемента среди элементов, больших Т1 и расположенных правее...

Найти номер первого минимального элемента среди элементов, больших Т1 и расположенных правее первого элемента, равного Т
Найти номер первого минимального элемента среди элементов, больших Т1 и расположенных правее...

11
Модератор
Эксперт С++
 Аватар для zss
13727 / 10923 / 6480
Регистрация: 18.12.2011
Сообщений: 29,157
12.04.2021, 18:54 2
Лучший ответ Сообщение было отмечено JackDark как решение

Решение

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
#include <fstream>
int main()
{
   ifstream f1("file1.txt");
   ifstream f2("file2.txt");
   if(f1 && f2)
   {
      char c1,c2;
      bool equal=true;
      int number=0;
      while( f1.get(c1) )
      {
          f2.get(c2);
          if(!f2 || c1!=c2)
          {
              equal=false;
              break;
           }
           number++;
       }
       if(equal)
          std::cout<<"Файлы одинаковые";
       else
          std::cout<<"Файлы отличаются в позиции "<< number
                <<"\nc1="<<c1<<" c2="<<c2<<std::endl;
   }else
       std::cout<<"не удалось открыть файл";
   return 0;
}
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.04.2021, 02:21 3
zss, подскажите зачем записывается это условие: if(!f2
0
Модератор
Эксперт С++
 Аватар для zss
13727 / 10923 / 6480
Регистрация: 18.12.2011
Сообщений: 29,157
13.04.2021, 09:01 4
Цитата Сообщение от zss Посмотреть сообщение
if(f1 && f2)
Проверка, что файлы открылись без ошибок.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.04.2021, 13:25 5
zss, я насчёт другого условия (из строки 14):
Цитата Сообщение от Yetty Посмотреть сообщение
if(!f2
0
Модератор
Эксперт С++
 Аватар для zss
13727 / 10923 / 6480
Регистрация: 18.12.2011
Сообщений: 29,157
13.04.2021, 14:08 6
Yetty, это проверка выхода за конец второго файла.
Он может кончиться раньше первого.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.04.2021, 14:26 7
Цитата Сообщение от zss Посмотреть сообщение
Он может кончиться раньше первого
даже если
Цитата Сообщение от JackDark Посмотреть сообщение
Даны два файла с одинаковым количеством компонентов
тоже может закончиться раньше ? почему именно второй файл проверяется ?
0
Модератор
Эксперт С++
 Аватар для zss
13727 / 10923 / 6480
Регистрация: 18.12.2011
Сообщений: 29,157
13.04.2021, 14:30 8
Первый уже проверен оператором while( f1.get(c1) )
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.04.2021, 14:40 9
zss, Вы так и не ответили на вопрос, если есть два файла с одинаковым количеством элементов один из них может закончиться раньше чем другой ?

Добавлено через 3 минуты
и ещё вопрос так записать можно ?
C++
1
while(f1.get(c1) && f2.get(c2))
если да, лучше с && или так ?
C++
1
while((f1.get(c1)), (f2.get(c2)))
0
Модератор
Эксперт С++
 Аватар для zss
13727 / 10923 / 6480
Регистрация: 18.12.2011
Сообщений: 29,157
13.04.2021, 14:45 10
Теоретически не могут.
Но, мало ли что, лучше на конец файла проверить(например, при вводе в один из файлов в конце случайно записали пробел, которого не видно).

Второй вариант неправильный, результат операции запятая - это результат последнего после запятой операнда, т.е. f2.get(c2).
А результаты до запятой игнорируются.
1
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.04.2021, 14:54 11
Цитата Сообщение от zss Посмотреть сообщение
результаты до запятой игнорируются
почему в таком случае работает код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <sstream>
using namespace std;
 
int main()
{
    char c1, c2;
    string s1="abc", s2="atc";
    
    stringstream f1(s1);
    stringstream f2(s2);
    
    while((f1.get(c1)), (f2.get(c2)))
    { 
        if(c1==c2) cout << "YES\n";
        else cout << "NO\n";
    }
    
    return 0;
}
0
Модератор
Эксперт С++
 Аватар для zss
13727 / 10923 / 6480
Регистрация: 18.12.2011
Сообщений: 29,157
13.04.2021, 14:56 12
Сделайте первый файл меньше второго и проверьте,
сколько раз выполнится цикл
0
13.04.2021, 14:56
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.04.2021, 14:56
Помогаю со студенческими работами здесь

Найти номер первого минимального элемента среди элементов, больших t1, и расположенных после первого элемента, равного t2
Задан целочисленный одномерный массив a из n элементов. Найти номер первого минимального элемента...

Найти номер первого минимального элемента среди положительных элементов, расположенных до первого элемента, кратного пяти.
Задан целочисленный одномерный массив a из n элементов. Найти номер первого минимального элемента...

Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего заданного числа Т
Написать собственную функцию для работы с одномерным динамическим массивом, заданным указателем....

Найти номер первого максимального элемента среди положительных элементов, расположенных до первого элемента, большего заданного числа t
помогите решить и разобраться с условием. Дан целочисленный вектор A(n). Найти номер первого...

Найти номер первого максимального элемента среди положительных элементов до первого отрицательного элемента массива
Массивы, без рандомных чисел нужно. Дан целочисленный вектор A(n). Найти номер первого...

Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего Т.
Задан целочисленный одномерный массив a из n элементов. Найти номер первого максимального элемента...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO / / https:/ / leetcode. com/ studyplan/ top-interview-150/ package topInterview . . .
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru