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

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

Восстановить пароль Регистрация
 
warspirit
3 / 3 / 0
Регистрация: 30.03.2011
Сообщений: 61
23.01.2013, 23:39     Проверка оператора присваивания #1
Программа должна находить и проверять правильность написания операторов присваивания в исходном тексте программы.
Результатом работы должен быть текст анализируемого фрагмента программы со вставленными в ошибочных местах комментариями о характере ошибки.

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

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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.01.2013, 01:08     Проверка оператора присваивания #2
Цитата Сообщение от warspirit Посмотреть сообщение
в чем тут ошибка ?
а с чего вы взяли что тут ошибка?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
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>
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] !=';')
стало работать правильно .
Yandex
Объявления
24.01.2013, 01:28     Проверка оператора присваивания
Ответ Создать тему
Опции темы

Текущее время: 08:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru