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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
cybernate
3 / 3 / 0
Регистрация: 10.03.2013
Сообщений: 45
#1

Ошибки в работе со строками - C++

13.04.2013, 18:49. Просмотров 302. Ответов 4
Метки нет (Все метки)

Дано два символьных файла f и g. Проверить их на совпадение символов. Если отличаются тогда вывести эти символы.

Моя программа задачу вроде выполняет, но в конце ругается на ошибки. Кто знает из-за чего они?

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
45
46
47
48
49
50
#include<iostream>
#include<fstream>
#include<string>
 
using namespace std;
 
int main()
{       
    string buff,buff2;                      // строка для хранения текста файлов
 
    ifstream f("Ffile.txt");                // открываем файл F
    ifstream g("Gfile.txt");                // открываем файл G
 
    getline(f, buff);                       // выводим файл
    getline(g, buff2);
    
 
    cout<<"Text File F:  "<<buff<<"\n\n";
    cout<<"Text File G:  "<<buff2<<"\n\n";
 
    
//if(buff.compare(buff2)==0)                // проверка на совпадение
//      cout<<"Stroki sovpodayt\n\n";
//  else
//      cout<<"Stroki raznue\n\n";
 
// Если они отличаются хотя б 1 символом то вывести его на экран
 
 
for(int i = 0; i<256; i++)                                              // Проверка совпадений файла F и G
{
    if(buff[i]!=buff2[i])
        cout<<" "<<buff.at(i);
}
 
cout<<"__________________________________\n";
 
for(int i = 0; i<256; i++)                                              // Проверка совпадений файла G и F
{
    if(buff2[i]!=buff[i])
        cout<<" "<<buff2.at(i);
}
 
    f.close();
    g.close();
 
 
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2013, 18:49     Ошибки в работе со строками
Посмотрите здесь:

Исправление ошибки в работе со строками - C++
Каждый раз в моём коде со строками выдает эту ошибку. Иногда, если проигнорировать её, всё запустится, а иногда - нет. В чём проблема? ...

Исправление ошибки в работе со строками - C++
Пожалуйста, подправьте программу. На borland 5 версии все работает ок. начал переписывать на Borland 3.1 пошли ошибка. Исправлял не знаю...

Ошибки при работе со строками - C++
Доброго времени суток! Есть такой код #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main...

Ошибки при работе со строками char* - C++
Здравствуйте. Помогите пожалуйста найти ошибку, ато я что-то ослеп(( #include &lt;fstream.h&gt; #include &lt;iostream.h&gt; #include &lt;conio.h&gt;...

Нужно исправить ошибки в програме по работе со строками - C++
Описание классов: Базовый класс &quot;Строки&quot;: виртуальные функции нахождения длины и сортировка с выводом результата. Класс наследник...

выпросы по работе со строками - C++
никак не могу понять, в чем ошибка. пытаюсь сравнить строки: отсутствует оператор &quot;==&quot;, соответствующий этим операндам; Ошибка 1 error...

Ошибка при работе со строками - C++
Добрый день! Я писал программу, которая после приставки под вставляет символ 'Ъ'. Я её написал, но она работает не корректно. Вот примеры...

Баг при работе с строками - C++
При использовании функции ChangeNum к уже существующему номеру (пункт меню &quot;работа с одним пользователем&quot; -&gt; &quot;изменить номер&quot;), при условии...

Ошибка при работе со строками - C++
Доброго времени суток! Казалось бы, простая проблема, но разобраться пока что никак не удаётся. Прошу помочь. Итак, нужно ввести из...

Указатели при работе со строками char* - C++
Помогите разобраться с указателями #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; int main() { char*...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
1643 / 1271 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
13.04.2013, 19:08     Ошибки в работе со строками #2
C++
1
i<256
почему именно 256? У тебя есть две строки. Находишь их длины: buff.size() и buff2.size(), и меньшую из длин подставь вместо 256
cybernate
3 / 3 / 0
Регистрация: 10.03.2013
Сообщений: 45
13.04.2013, 19:42  [ТС]     Ошибки в работе со строками #3
в этом может быть ошибка?

Добавлено через 31 минуту
В этом случае вообще цикл не выполняется.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if(buff.size()>buff2.size())
    {
        for(int i = 0; i<buff2.size(); i++)
        {
            if(buff[i]!=buff2[i])
                cout<<buff2[i];
        }
    }
    else
    {
        for(int i = 0; i<buff.size(); i++)
        {
            if(buff[i]!=buff2[i])
                cout<<buff[i];
        }
    }
igorrr37
1643 / 1271 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
13.04.2013, 19:50     Ошибки в работе со строками #4
вот навскидку
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
45
46
47
48
49
50
51
52
53
#include<iostream>
#include<fstream>
#include<string>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    string buff,buff2;                      // строка для хранения текста файлов
 
    ifstream f("Ffile.txt");                // открываем файл F
    ifstream g("Gfile.txt");                // открываем файл G
 
    getline(f, buff);                       // выводим файл
    getline(g, buff2);
 
 
    cout<<"Text File F:  "<<buff<<"\n\n";
    cout<<"Text File G:  "<<buff2<<"\n\n";
 
 
//if(buff.compare(buff2)==0)                // проверка на совпадение
//      cout<<"Stroki sovpodayt\n\n";
//  else
//      cout<<"Stroki raznue\n\n";
 
// Если они отличаются хотя б 1 символом то вывести его на экран
 
 
int minsize = buff.size() < buff2.size() ? buff.size() : buff2.size();
 
for(int i = 0; i<minsize; i++)                                              // Проверка совпадений файла F и G
{
    if(buff[i]!=buff2[i])
        cout<<" "<<buff.at(i);
}
 
cout<<"__________________________________\n";
 
for(int i = 0; i<minsize; i++)                                              // Проверка совпадений файла G и F
{
    if(buff2[i]!=buff[i])
        cout<<" "<<buff2.at(i);
}
 
    f.close();
    g.close();
 
 
    system("pause");
    return 0;
}
cybernate
3 / 3 / 0
Регистрация: 10.03.2013
Сообщений: 45
13.04.2013, 19:55  [ТС]     Ошибки в работе со строками #5
Я извиняюсь но и тот код работал, просто Visual глюканул и не выполнял новый код
Спасибо!
Yandex
Объявления
13.04.2013, 19:55     Ошибки в работе со строками
Ответ Создать тему
Опции темы

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