Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
1

испортился компилятор посмотрите

16.10.2011, 13:04. Показов 2286. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// 1.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
 
int main(int argc, char* argv[])
{
    for (int i=1;i<10;i++)
    {}
int i=1;
 
    return 0;
}
выводит ошибку
C:\Program Files\Microsoft Visual Studio\MyProjects\1\1.cpp(10) : error C2374: 'i' : redefinition; multiple initialization
C:\Program Files\Microsoft Visual Studio\MyProjects\1\1.cpp(8) : see declaration of 'i'

а раньше всё было нормально что делать помогите пожалуйста

Добавлено через 7 минут
компилятор mv c++ 6 (MVS 6 обрезаный)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2011, 13:04
Ответы с готовыми решениями:

испортился файл
здрасте. был php файл превратился в это: &quot;S‘љЦ&lt;wЌЋGД»ї»юЗїсPЮCіOv .c.ц ...

Испортился гуглхром
Уже целый день, через каждые 5 минут выдаёт табличку, как на фото ниже. Запускаю программу CHKDSK...

Кабель испортился?
Здравствуйте! Вин10. Значок интернете соединения закрыт красным крестиком, типа кабель не воткнут....

Испортился windows
Случился такой случай!... Был у меня установлен windows! где-то через месяц включаю с утра комп! И...

24
Jupiter
16.10.2011, 13:04
  #2

Не по теме:

Цитата Сообщение от Van111 Посмотреть сообщение
испортился компилятор
Цитата Сообщение от Van111 Посмотреть сообщение
mv c++ 6 (MVS 6 обрезаный)
срок годности истек:)

2
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
16.10.2011, 13:06  [ТС] 3
я его недавно переустановил перед этим делал восстановление системы
0
23 / 23 / 11
Регистрация: 26.03.2011
Сообщений: 54
16.10.2011, 13:20 4
не испортился ничего. два раза объявлять переменную нельзя. иногда можно ошибку прочесть если не сразу понятно
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
16.10.2011, 14:02  [ТС] 5
так на дев с++ всё работает и раньше на mvc++ 6 работало а щас перестало
0
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
16.10.2011, 14:08 6
Все равно попробуйте изменить строку 7 на

C++
1
i=1;
И если не заработает, объявите переменную i в начале main.
1
Заблокирован
16.10.2011, 14:12 7
Van111,
C++
1
2
3
4
5
for (int i=1;i<10;i++)// i находится в пространстве имен функции for()
{}
int i=1;// i находится в пространстве имен функции main()
// пространство имен функции for() выделяется из пространства имен функции main() 
// в итоге декларируется два статуса для одного адреса
1
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.10.2011, 14:15 8
А на Dev 4.9.9.2 запустилось оО Странно.

Результат вывода i на экран: 1234567891. По моему он параметр цикла уничтожает после его обхода.

А вобще нельзя такого делать.
0
Заблокирован
16.10.2011, 14:16 9
формально ошибки нет, почему нельзя? просто как видно, не каждый компилятор ест.
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
16.10.2011, 14:17  [ТС] 10
а на mv c++ 6 намного код лучше компилирует чем dev c++
а то я думаю может на дев перейти
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.10.2011, 14:21 11
Цитата Сообщение от alkagolik Посмотреть сообщение
формально ошибки нет, почему нельзя? просто как видно, не каждый компилятор ест.
Ну например задачу может прийдется показывать на других компьютерах, на которых есть только VS (как обычно и бывает), а там объясняй что у тебя дома все работает, а тут "машина - дура".
0
23 / 23 / 11
Регистрация: 26.03.2011
Сообщений: 54
16.10.2011, 14:27 12
Цитата Сообщение от MrGluck Посмотреть сообщение
Ну например задачу может прийдется показывать на других компьютерах, на которых есть только VS (как обычно и бывает), а там объясняй что у тебя дома все работает, а тут "машина - дура".
оказывается и на VS тоже работает, проверил. я сначала подумал, что такое реально нельзя делать
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.10.2011, 14:29 13
Эта ошибка в vc6 была очень известна в своё время. В gcc (которым пользуется DevC++) она отсутствует. Поработайте с vc6, вы ещё много интересного о ней узнаете.

Добавлено через 1 минуту
испортился компилятор

Не по теме:

В холодильнике хранили? Если нет - то понятно, в чём дело. :)

1
Заблокирован
16.10.2011, 14:29 14
MrGluck, не машина, а реализация работы машины "человеками". кто виноват в том что
есть только VS (как обычно и бывает)
конечно надо учитывать особенности компилятора, никто и не спорит Страуструпп этому прямо учит. Но в том что в большинстве случаев стоит VS... кто-то же ее туда поставил, верно? Отсюда и уровень. Нельзя от компьютерщика скрывать работу компьютера, я за правку конфигов руками ))
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
16.10.2011, 14:30 15
Цитата Сообщение от MrGluck Посмотреть сообщение
Ну например задачу может прийдется показывать на других компьютерах, на которых есть только VS (как обычно и бывает), а там объясняй что у тебя дома все работает, а тут "машина - дура".
объяснишь не ты первый, не ты последний.
Почему функция копирования строк не принимает два параметра?
0
Заблокирован
16.10.2011, 14:37 16
как вам такой фокус?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main(){
 
    for (int i = 0; i < 10; ++i)
    {
 
    }
    int i = 10;
 
    for (int i = 0; i < 3; ++i)
    {
        for (int i /*объявлена но к ней обратиться не получится*/ = 0; i < 3; ++i)
            std::cout << i << ' '<< i << std::endl;
    }
    std::cout << i << ' ' << std::endl;
 
    return 0;
}
1
Заблокирован
16.10.2011, 14:53 17
Так то понятно - не хочешь проблем, пиши православный (потенциально безопасный) код.
Но все таки интересно, что об этом нюансе говорит стандарт языка?
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
16.10.2011, 15:40 18
Лучший ответ Сообщение было отмечено как решение

Решение

Оно?
If the for-init-statement is a declaration, the scope of the name(s) declared extends to the end of the for-
statement. [ Example:
int i = 42;
int a[10];
for (int i = 0; i < 10; i++)
a[i] = i;
int j = i; // j = 42
- end example ]


пункт 6.5.3, сдуто с черновика принятого недавно стандарта.
4
Заблокирован
16.10.2011, 17:50 19
Цитата Сообщение от Van111 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// 1.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
 
int main(int argc, char* argv[])
{
    for (int i=1;i<10;i++)
    {}
int i=1;
 
    return 0;
}
выводит ошибку
C:\Program Files\Microsoft Visual Studio\MyProjects\1\1.cpp(10) : error C2374: 'i' : redefinition; multiple initialization
C:\Program Files\Microsoft Visual Studio\MyProjects\1\1.cpp(8) : see declaration of 'i'

а раньше всё было нормально что делать помогите пожалуйста

Добавлено через 7 минут
компилятор mv c++ 6 (MVS 6 обрезаный)
Если вы имеет дело с версией MVC++ 6, то переменные, объявленные в цикле, имеют область видимости тот внешний блок, в котором имеется предложение цикла. То есть после выхода из цикла, переменная продолжает "жить". Это естественно не соответствует стандарту С++ 2003, но тем не менее в те времена, когда появилась 6 вресия, стандарт С++ 2003 еще не был полностью реализован в компиляторах.

Поэтому компилятор вам правильно говорит о существовании ошибки, то есть в одной и той же области объявлений он встречает переопределение идентификатора.

Вам следует порльзоваться более современными компиляторами.
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
16.10.2011, 18:54  [ТС] 20
а вот ещё одно предположение проблемы у меня после восстановления системы включилась автоматическая обновление ОС (а в неё входили net fraemwork и redistributable) я так думаю что они могли обновился и изменить mv c++ 6 щас она у меня вообще глючить стала.
из за этого могли начаться проблемы????????????????
P.S. я ещё дров на устанавливал стандартных
0
16.10.2011, 18:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2011, 18:54
Помогаю со студенческими работами здесь

Испортился шрифт :dance:
На днях испортился шрифт, стал тоньше(?) что ли. Как это исправить? Заходил в дополнительные...

DVD-диск испортился?
Два года на полке простоял пользованный DVD с игрой &quot;Civilization IV Beyond The Sword&quot;. Сегодня...

Adobe плеер обновил и он испортился
плеер постоянно предлагал обновление я обновил и на тебе ни видео не показывает ни приложения не...

Internet explorer испортился что делать?
windows 7 x64 стоит IE 9 примерно через 20 секунд после запуска IE пишет что прекращена работа ,...


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

Или воспользуйтесь поиском по форуму:
20
Закрытая тема Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru