Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Проверка оператора присваивания - C++

23.01.2013, 23:39. Просмотров 368. Ответов 3
Метки нет (Все метки)

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

в чем тут ошибка ?

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
#include "stdafx.h"
#include "iostream"
#include "fstream"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    char source[300], res[300];
    ifstream in("D:\\programm.txt");
    if(!in.is_open() )
    {
        cout<<"File not found.\n";
        return 0;
    }
    in.get(source, 300, '.');
    char *s = strstr(source,"=");  
    if(s!=NULL)
    {
        int i=s-&source[0];
        i+=1;
        while(source[i] == ' ') i++;
        if(source[i] !=';')
        {
            strncpy(res,source, i-1);              
            res[i-1] = 0;
            strcat(res, " /*Must be = */ ");
            strcat(res, &source[i]);               
            cout<<res;
            return 0;
        }
    }
    cout<<source;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2013, 23:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверка оператора присваивания (C++):

Избыточное копирование объекта при реализации оператора умножения и оператора присваивания - C++
Есть класс работы с матрицами. Есть операция умножения матриц, описанная как оператор класса. В данном коротком примере я просто моделирую...

Неправильная работа оператора присваивания после работы оператора суммирования - C++
Доброго времени суток. У меня есть класс вектор class TVector {//ewde public: TVector(); //Vector(Vector &amp;v); TVector(int...

Перегрузка оператора присваивания - C++
Приветствую всех. Не могли бы подсказать как переопределить оператор присваивания. То что искал, так там написано в общем о...

Перегрузка оператора присваивания - C++
При перегрузке оператора присвоения выдает ошибки cpp(58) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider...

Перегрузка оператора присваивания - C++
Добрый вечер ! Нужна помощь по небольшому теоретико-практическому вопросу. Опять же вопрос по примеру из книги Шилдта С++ Базовый курс....

Перегрузка оператора присваивания - C++
Вот есть такой класс template&lt;typename TT&gt; class Matrix { public: ...

3
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.01.2013, 01:08 #2
Цитата Сообщение от warspirit Посмотреть сообщение
в чем тут ошибка ?
а с чего вы взяли что тут ошибка?
1
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,620
24.01.2013, 01:13 #3
До 33 строчки прога в жизни не дойдет.
res[i-1] = 0; подозреваю, что res[i-1] = '\0';
Хедеры должны быть такие:
C++
1
2
3
#include <iostream>
#include <fstream>
#include <cstring>
1
warspirit
3 / 3 / 0
Регистрация: 30.03.2011
Сообщений: 61
24.01.2013, 01:28  [ТС] #4
исправил вот эту часть кода с
C++
1
if(source[i] !=';')
на
C++
1
if(source[i+1] !=';')
стало работать правильно .
0
24.01.2013, 01:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2013, 01:28
Привет! Вот еще темы с ответами:

Переопределение оператора присваивания - C++
Имеется такой простой класс: class TClass { private: float* A; int N; public: TClass(int _N) ...

Перегрузка оператора присваивания - C++
мне надо было реализовать конструкторы, деструктор, оператор присваивания, функции ввода / вывода объектов; кто сможет дописать...

Перегрузка оператора присваивания - C++
Добрый вечер. Есть задание: Нужно так перегрузить оператор =, чтобы можно было элементу одного класса, присваивать значение элемента...

Насчет оператора присваивания - C++
Есть следующий код : #include &lt;iostream&gt; using namespace std; class Array { private: size_t mysize; int *mydata; ...


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

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

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