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

Анализ небольшого кода по файлам

19.11.2015, 20:11. Просмотров 860. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста с кодом!
Все вроде правильно и без синтаксических ошибок, но выдает "Abnormal program termination" при запуске и при наличии файлов с записями внутри; с пустыми файлами все ок. Без идей, как исправить...
Задача: даны два текстовых файла F.txt и G.txt состоящих из одинакового количества строк. Напишите программу, которая сравнивает строки данных файлов и выводит на экран порядковый номер несовпадающих строк.
Кликните здесь для просмотра всего текста
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
#include <iostream.h>
#include <fstream.h>
#include <conio.h>
#include <stdio.h>
#include <cstring.h>
void main()
{
string a,b;
bool o;
ifstream f;
ifstream g;
unsigned d;
int str=0;
f.open("F.txt");
g.open("G.txt");
while (!f.eof()||!g.eof())
{
getline(f,a);
getline(g,b);
str++;
o=true;
if (a.length()>b.length()||a.length()==b.length()) d=a.length(); else d=b.length();
for (unsigned i=0;i<d;i++)
if (a[i]!=b[i]) o=false;
if (o==false) cout<<"stroki "<<str<<" ne sovpadayut";
}
f.close();
g.close();
getch();
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2015, 20:11
Ответы с готовыми решениями:

Разбор строчек небольшого кода
Помогите разобрать каждую строку ( что она делает - описание ) #include...

Множество ошибок в проекте Visual Studio после небольшого изменения кода
Работал над проектом, писал код как обычно. В процессе написания постоянно...

Математический анализ кода программы. Как работает rand()?
Помогите, пожалуйста, с математическим анализом кода программы. #include...

Анализ кода программы, которая решает логическое уравнение
Пишу прогу, которая решает логическое уравнение. Не компилируется... помогите...

Интерпретатор небольшого языка программирования на С++
Здравствуйте, уважаемые форумчане! Я тут где-то год назад прочитал тему Evg...

3
Nosey
1350 / 401 / 144
Регистрация: 22.10.2014
Сообщений: 863
Завершенные тесты: 2
19.11.2015, 20:39 2
Лучший ответ Сообщение было отмечено Pukanium как решение

Решение

у std::string определён оператор !=
т.е. можно писать так:
C++
1
2
3
4
5
6
7
getline(f,a);
getline(g,b);
str++;
if (a != b)
{
    cout << "stroki " << str << " ne sovpadayut";
}
И оно должно работать, разве что проблемы с доступностью файлов. Добавьте проверку:
C++
1
2
3
4
5
6
7
f.open("F.txt");
g.open("G.txt");
if (!f || !g)
{
    cerr << "can't open file" << endl;
    return 1;
}
1
Pukanium
2 / 2 / 2
Регистрация: 30.11.2014
Сообщений: 23
19.11.2015, 20:42  [ТС] 3
Цитата Сообщение от Nosey Посмотреть сообщение
разве что проблемы с доступностью файлов
ошибку нашел
вместо
C++
1
d=a.length(); else d=b.length();
C++
1
d=b.length(); else d=a.length();
указатель выходил за границу возможного, вот и получалась ошибка
0
Nosey
1350 / 401 / 144
Регистрация: 22.10.2014
Сообщений: 863
Завершенные тесты: 2
19.11.2015, 20:49 4
Pukanium, Таки советую воспользоваться стандартным сравнением неравнства строк, поскольку как минимум если строки разной длины - они различны.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2015, 20:49

Программирование небольшого приложения и хранение данных
Всем привет! Такая штука - я решил вспомнить с++, так скажем прям в гущу...

Ошибка при сборке небольшого проекта. undefined reference to
Здравствуйте. Задача программы - подсчет сколько раз в строке встречается...

Ревью небольшого кода
Хаскелл я изучаю совсем недавно, поэтому хотелось бы узнать, что и как можно...


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

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

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