Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
6 / 6 / 1
Регистрация: 31.01.2012
Сообщений: 134

Перенос кода

27.06.2012, 03:29. Показов 1704. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста в чём проблема?
имею код:

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 ==========
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.06.2012, 03:29
Ответы с готовыми решениями:

Перенос кода на C++11
Здравствуйте! Я столкнулся со следующей проблемой: есть проект под Android, большая часть которого написана на С++. В команде...

перенос кода в С++
var e,x,t,s:real; n:integer; begin repeat write('|x|&lt;1 x='); read(x); until abs(x)&lt;1; repeat write('0&lt;e&lt;1 e='); ...

Перенос кода из Pas в С/С++
Здравствуйте. Есть программа на паскале, которая случайным образом выдает 3 слова из текстового файла без повторения uses Crt; ...

2
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
27.06.2012, 05:20
Цитата Сообщение от !Андрей! Посмотреть сообщение
circle: необъявленный идентификатор
Что за circle? Странно как-то всё оформленно. Файл func имеет расширение .cpp, а оформлен и подключается, как заголовочный. Лучше прототипы все функций поместить в заголовочный файл. Подключить его в lab4.cpp и в func.cpp. В func.cpp оставить реализации и убрать оттуда #ifndef и пр. Но главное, что за circle, остальное всё предупреждения.
0
 Аватар для programm1r
48 / 47 / 7
Регистрация: 19.06.2012
Сообщений: 134
27.06.2012, 08:20
C++
1
2
3
4
5
6
void getkey()
{
    char key;
    key = getch();
    if (key=='q') circle=false;
}
Эта функция нигде не используется, по крайней мере в приведенном коде. Попробуйте ее закомментировать. Там же не объявленная переменная circle. В dev cpp возможно допускается по умолчанию тип переменной int, а VS это запрещено.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.06.2012, 08:20
Помогаю со студенческими работами здесь

Перенос кода с java на с++
Всем привет я навичок помогите перевести этот код с java на с++ import java.util.Random; public class Runner { ...

Перенос кода с Паскаля на Си. Часть 1
Есть задача, для решения которой написано консольное приложение на Pascal. Авторов было несколько и они не были программистами, откуда...

Перенос исходного кода из Assembler на C++
Доброго времени суток форумчане! Столкнулся с проблемой переноса кода на C++. По заданию, имеется исходный код на языке Assembler....

Перенос кода в дружественную функцию
Нужно подсчитать количество слов в строке и сделать это через дружественную функцию. Не совсем понимаю как это реализовать. Изначально...

Перенос исходного кода из Assembler на C++
Доброго времени суток форумчане! Столкнулся с проблемой переноса кода на C++. По заданию, имеется исходный код на языке Assembler....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru