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

Перенос кода - C++

Восстановить пароль Регистрация
 
!Андрей!
6 / 6 / 0
Регистрация: 31.01.2012
Сообщений: 134
27.06.2012, 03:29     Перенос кода #1
Подскажите пожалуйста в чём проблема?
имею код:

func.cpp
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
    #ifndef LAB4_H
    #define LAB4_H
 
    #include "stdafx.h"
 
    int borderLeft[100];
    int borderRight[100];
    int currentWord = 0;
    
    void color(int color)
    {
        HANDLE hConsole;
        hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute (hConsole,color);
    }
    
    void findWords()
    {
        FILE *file;
        
        char current = ' ', previous = ' ', firstLetter = ' ';
        file = fopen("text.dat", "r");
        
        int position = 0;
        
        do
        {
            position++;
            previous = current;
            current = fgetc(file);
            
            if ((previous == ' ') && (current != ' ')) // если находимся в начале слова
               {
                borderLeft[currentWord] = position - 1; // запоминаем левую границу
                firstLetter = current; // запоминаем первую букву 
               }
           
           if (((current == ' ') || (current == EOF)) && (previous != ' ')) // если прошли всё слово
              if (previous == firstLetter) // если последняя совпала с первой
              {
               borderRight[currentWord] = position - 1; // запоминаем правую границу
               currentWord++;  
              } 
        }
        while (current != EOF);
        fclose(file);
    }
    
    void print()
    {
        FILE *file;
        char c;
        file = fopen("text.dat","r");
        int position = 0;
        do
        {
            if ((position >= borderLeft[currentWord]) && (position <= borderRight[currentWord]))
               color(0x0D); // если выводим выделенное слово, меняем цвет
            else
               color(0x0F);
               
            c = fgetc(file);
            position++;
            putchar(c);
            
            
            if (!(position % 68))
            {   
                if (c == ' ')
                    cout << "\n";
                else
                {
                    cout << "-\n";
                };
            };
            
        }
        while (c != EOF);
        cout << "\n\n";
        fclose(file);
    }
 
    
    void getkey()
    {
        char key;
        key = getch();
        if (key=='q') circle=false;
    }
    
    
    void draw(void)
    {
        int current = 0;
    
        system("cls");
        findWords();
        
        int maxWord = currentWord;
        currentWord = 0;
        
        for (int i = 0; i < maxWord; i++)
        { 
         system("cls");
         print();
         getch();
         getch();
         if (currentWord < 100) currentWord++;
        }
    }
    #endif
lab4.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
// lab4.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "func.cpp"
 
int _tmain(int argc, _TCHAR* argv[])
{
    draw();
    return 0;
}
stdafx.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// stdafx.h: включаемый файл для стандартных системных включаемых файлов
// или включаемых файлов для конкретного проекта, которые часто используются, но
// не часто изменяются
//
 
#pragma once
 
# include "targetver.h"
 
# include <stdio.h>
# include <tchar.h>
# include <iostream>
using namespace std;
# include <conio.h>
# include <windows.h>
 
 
// TODO: Установите здесь ссылки на дополнительные заголовки, требующиеся для программы
На dev cpp - прога работает идеально, а в Visual Studio - выдает ошибки, подскажите пожалуйста что не так?

Ошибки Visual Studio:

1>------ Построение начато: проект: lab4, Конфигурация: Debug Win32 ------
1>Построение начато 27.06.2012 3:28:01.
1>InitializeBuildStatus:
1> Обращение к "Debug\lab4.unsuccessfulbuild".
1>ClCompile:
1> Для всех выходных данных обновления не требуется.
1> lab4.cpp
1>d:\projects\lab4\lab4\func.cpp(22): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\microsoft visual studio 10.0\vc\include\stdio.h(234): см. объявление "fopen"
1>d:\projects\lab4\lab4\func.cpp(53): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\microsoft visual studio 10.0\vc\include\stdio.h(234): см. объявление "fopen"
1>d:\projects\lab4\lab4\func.cpp(87): warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
1> d:\microsoft visual studio 10.0\vc\include\conio.h(128): см. объявление "getch"
1>d:\projects\lab4\lab4\func.cpp(88): error C2065: circle: необъявленный идентификатор
1> func.cpp
1>d:\projects\lab4\lab4\func.cpp(2): warning C4603: LAB4_H: макрос не определен или определение изменилось после использования предкомпилированного заголовка
1> Добавление макроопределения в предкомпилированный заголовок вместо определения его здесь
1> d:\projects\lab4\lab4\func.cpp(4): использование предкомпилированного заголовка
1>d:\projects\lab4\lab4\func.cpp(22): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\microsoft visual studio 10.0\vc\include\stdio.h(234): см. объявление "fopen"
1>d:\projects\lab4\lab4\func.cpp(53): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\microsoft visual studio 10.0\vc\include\stdio.h(234): см. объявление "fopen"
1>d:\projects\lab4\lab4\func.cpp(87): warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
1> d:\microsoft visual studio 10.0\vc\include\conio.h(128): см. объявление "getch"
1>d:\projects\lab4\lab4\func.cpp(88): error C2065: circle: необъявленный идентификатор
1>d:\projects\lab4\lab4\func.cpp(111): fatal error C1020: непредвиденный #endif
1> Создание кода...
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.14
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2012, 03:29     Перенос кода
Посмотрите здесь:

Создание кода программы с нуля!! создание кода C++ C++
Перенос кода из Pas в С/С++ C++
C++ Перенос битов
C++ Перенос кода с java на с++
перенос кода в С++ C++
Участок B кода выполняется позже, чем участок A кода, но почему-то B влияет на работоспособность A! Почему? C++
перенос курсора C++
Перенос кода на C++11 C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.06.2012, 05:20     Перенос кода #2
Цитата Сообщение от !Андрей! Посмотреть сообщение
circle: необъявленный идентификатор
Что за circle? Странно как-то всё оформленно. Файл func имеет расширение .cpp, а оформлен и подключается, как заголовочный. Лучше прототипы все функций поместить в заголовочный файл. Подключить его в lab4.cpp и в func.cpp. В func.cpp оставить реализации и убрать оттуда #ifndef и пр. Но главное, что за circle, остальное всё предупреждения.
programm1r
 Аватар для programm1r
46 / 45 / 1
Регистрация: 19.06.2012
Сообщений: 134
27.06.2012, 08:20     Перенос кода #3
C++
1
2
3
4
5
6
void getkey()
{
    char key;
    key = getch();
    if (key=='q') circle=false;
}
Эта функция нигде не используется, по крайней мере в приведенном коде. Попробуйте ее закомментировать. Там же не объявленная переменная circle. В dev cpp возможно допускается по умолчанию тип переменной int, а VS это запрещено.
Yandex
Объявления
27.06.2012, 08:20     Перенос кода
Ответ Создать тему
Опции темы

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