Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 47

Код, который работал в VS 2008, не работает в VS 2012

22.02.2015, 16:18. Показов 608. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, почему код, который работал в VS 2008, не работает в VS 2012. Я скопировала код из файла 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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <assert.h>
 
struct Purchase
{
    char name[50];
    int price;
};
 
bool scan(Purchase p[], int i) {
 
  printf("%s", "Article name: ");
  if (scanf_s("%s", (p + i)->name) == EOF)
    return false;
 
  printf("%s", "Article price: ");
  if (scanf_s("%d", &(p + i)->price) == EOF)
    return false;
 
  assert(p[i].price > 0);
 
  return true;
}
 
Purchase * cheap( Purchase* p, int n )
{
    int cheap = p->price;
    int index=0;
 
    for( int i=1; i<n; i++) 
    {
        if( (p+i)->price < cheap )
        {
            cheap=(p+i)->price;
            index=i;
        }
    }
    return (p+index); 
}
 
Purchase * expensive( Purchase* p, int n )
{
    int expensive = p->price;
    int index=0;
 
    for( int i=1; i<n; i++ ) 
    {
        if( (p+i)->price > expensive )
        {
            expensive=(p+i)->price;
            index=i;
        }
    }
    return (p+index); 
}
 
 
 
int  sum( Purchase* p, int n )
{
    int s=0;
 
    for( int i=0; i<n; i++ )
    {
        s=s+(p+i)->price;
    }
 
    return s;
}
 
void sameGoods( Purchase* p, int n)
{
    Purchase ** repeats = new Purchase*[n];
    int rep_count = 0;
 
    for (int i = 0; i < n - 1; i++) 
    {
      for (int j = i + 1; j < n; j++) 
      {
        if (strcmp((p+i)->name, (p+j)->name) == 0)
        {
          bool appear = false;
 
          for (int k = 0; k < rep_count && !appear; k++)
          {
              if (strcmp(repeats[k]->name, (p+i)->name) == 0)
              appear = true;
          }
 
          if (!appear)
            repeats[rep_count++] = p+i;
        }
      }
    }
    
    if( rep_count>0)
    {
    printf("Repetitive purchases are\n");
 
    for (int i = 0; i < rep_count; i++)
        printf ("%s\n", repeats[i]->name);
    }
    else  printf("There is no repetitive items\n");
    delete[] repeats;
}
 
void samePrice( Purchase* p, int n)
{
    Purchase ** repeats = new Purchase*[n];
    int rep_count = 0;
 
    for (int i = 0; i < n ; i++) 
    {
      for (int j =  i+1; j < n; j++) 
      {
        if ((p+i)->price ==(p+j)->price) 
        {
          bool appear = false;
 
 
         if (!appear){
            repeats[rep_count++] = p+i;
            repeats[rep_count++] = p+j;
            }
        }
      }
    }
    if( rep_count>0)
    {
    printf("Goods that have the same price\n");
 
    for (int i = 0; i < rep_count; i++)
        printf ("%s\n", repeats[i]->name);
    }
    else  printf("No goods have the same price\n");
    delete[] repeats;
}
 
int main ( )
{
    int  size=100, count=0, s=0;
    Purchase * cheapProduct = NULL;
    Purchase * expenProduct = NULL;
    Purchase* shopingCart = new Purchase[size];
 
 
    while (scan(shopingCart, count))
            ++count;
 
    cheapProduct = (cheap( shopingCart, count ));
    expenProduct = (expensive( shopingCart, count ));
 
    s = sum( shopingCart, count );
 
    printf( "\nThe cheapest purchase is %s", cheapProduct->name );
    printf( "\nThe most expensive purchase %s", expenProduct->name );
    printf( "\nSum of spending is %d\n", s );
 
    sameGoods( shopingCart, count);
    samePrice( shopingCart, count );
 
    delete[] shopingCart;
 
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.02.2015, 16:18
Ответы с готовыми решениями:

В IE6 не работает код, который работал в предыдущих версиях IE
Уважаемый форум! Столкнулся с такой проблемой - в IE6 (XP SP1)не работает код, хотя в предыдущих версиях IE все было ОК. Кто-нибудь ...

Перестал работать код, который раньше работал совершенно нормально
Здравствуйте. У меня есть VBA-код, который скачивает из Сети файл: Sub Macross1() LinkToFile$ = &quot;Адрес сайта&quot; ...

Код не работает в 2008 версии visual studio, но работает в 2005
Добрый день. Писала на университетском компьютере программу, считывающую данные из файла в список структур. Там стоит 2005 версия, и всё...

6
99 / 35 / 9
Регистрация: 22.08.2014
Сообщений: 104
22.02.2015, 17:10
Ну вы хоть пишите, какие именно ошибки, в каких строках. А еще важен ТИП проекта. Не в нем ли проблема? Для учебных консольных приложений надо создавать пустой проект, через меню Проект добавлять в него новый элемент - файл срр и в него копировать код. Любой другой способ, например, создание проекта консольного вместо просто пустого, приведет к проблемам.
0
0 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 47
22.02.2015, 17:49  [ТС]
В том то и дело, что в коде ошибок нет.
Создание пустого проекта помогло, работает. Спасибо!
0
4 / 4 / 1
Регистрация: 22.02.2015
Сообщений: 17
22.02.2015, 18:26
Есть аббревиатура в виде ' _T("") " и TEXT("") '
Если планируете использовать Ваши модули в разнообразных проектах, то
печатайте аббревиатуру 'TEXT("") '.
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
22.02.2015, 18:32
Цитата Сообщение от Анна Лето Посмотреть сообщение
Я скопировала код из файла cpp
а вот этот файл?
Цитата Сообщение от Анна Лето Посмотреть сообщение
stdafx.h
вот это странно
Цитата Сообщение от Анна Лето Посмотреть сообщение
&(p + i)->price
и рядом
Цитата Сообщение от Анна Лето Посмотреть сообщение
p[i].price
в чем сакраментальный смысл?
Цитата Сообщение от Казерская Ирина Посмотреть сообщение
Любой другой способ, например, создание проекта консольного вместо просто пустого, приведет к проблемам.
К каким?
0
99 / 35 / 9
Регистрация: 22.08.2014
Сообщений: 104
22.02.2015, 18:50
Если код проекта одного типа пытаться вставить в проект другого типа, то он, скорее всего, не будет компилироваться. Не та точка входа, или не те библиотеки....

Добавлено через 2 минуты
stdafx.h в некоторых проектах вижуал С++ нужен, в других нет. Чтобы с этим не геморроиться, надо делать пустой проект, если не собираетесь использовать WinAPI или изучать C++/CLI.
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
22.02.2015, 19:19
Цитата Сообщение от Казерская Ирина Посмотреть сообщение
Если код проекта одного типа пытаться вставить в проект другого типа, то он, скорее всего, не будет компилироваться.
Не компилироваться он будет только в одном случае, если тупо копировать не думая что стоит за каждой строчкой кода
сознаюсь иногда сам так делаю, когда нужно проверить код, например, из форума
но компилятор тут же выбросит кучу ошибок, с сообщением что ему не нравится, кнопка F4, прошел по листингу и исправил
Цитата Сообщение от Казерская Ирина Посмотреть сообщение
Не та точка входа,
это надо очень постараться, виндовый код засунуть в консоль или наоборот и здесь "пустой проект" не спасет
Цитата Сообщение от Казерская Ирина Посмотреть сообщение
или не те библиотеки....
библиотеки или включаются через pragma тогда их сразу видать, или через свойства проекта,тогда от копирования Си файла ничего не изменится
Цитата Сообщение от Казерская Ирина Посмотреть сообщение
stdafx.h в некоторых проектах вижуал С++ нужен, в других нет.
stdafx.h это предкомпилираваный заголовок,фича VS, ускоряет компиляцию когда файлов много
достаточно при создании проекта не ставить галочку, или можно снять эту галочку в свойствах проекта
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.02.2015, 19:19
Помогаю со студенческими работами здесь

Перевести код с SQL 2012 на SQL 2008
Надо перевести код с SQL 2012 на SQL 2008 WITH SalesMonth2007 AS ( SELECT MONTH(orderdate) AS monthno, SUM(val) AS...

Работа с указателями - код не работает в Visual Studio 2012
Нужно помощь, дан код программы с указателями. Когда пишу код в Visual 2012, то при выводе на экран выдается ошибка (на скрине). Когда...

Не работает код С++ (Visual Studio 2008)
Вобщем нужно было составить программу для вычисления значения функции с использованием сложной структуры разветвления. Данные вводятся с...

WTF не работает простой код на Visual studio 2008(баг?)
Взял код из википедии. ...

Не работает код, который получает размер папки
Здравствуйте, форумчане. Есть код: #include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace std; DWORDLONG GetFolderSize(char...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru