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

#include "StdAfx.h" и проблема цикал в компиляторе - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
tennisru
13 / 13 / 1
Регистрация: 10.09.2011
Сообщений: 179
27.09.2011, 00:23     #include "StdAfx.h" и проблема цикал в компиляторе #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
#include "StdAfx.h"
#include <iostream>
#include <fstream>
 
 
 
 
using namespace std;
int main()
{ 
        int x;
        int a[1000];
        ifstream in;
        ofstream out;
  in.open ("input.txt");
  out.open("output.txt");
  in >> x;
 
  out << x+x;
 
  in.close();
  out.close();
 
  return 0;
}
16): fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "StdAfx.h"" в источник.
вот что выдает но это же есть...
Еще что если простой цикл вызывает ошибку. например
C++
1
2
3
 j=8
for (int i=1 ,i<=j;i++);
 cin >> a[i];
этот цикл компилируется и после вызова ввести что нибудь выдает ошибку примерно через 2 секунды.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2011, 00:23     #include "StdAfx.h" и проблема цикал в компиляторе
Посмотрите здесь:

C++ экспрес ругается на #include "stdafx.h". Что делать?
#include "stdafx.h" C++
Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include C++
Что можно сказать об этом #include "stdafx.h" C++
#include "stdafx.h" ? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
27.09.2011, 00:55     #include "StdAfx.h" и проблема цикал в компиляторе #2
Это вообще не нужно #include "StdAfx.h". Уберите это.
Если у вас Visual Studio, то попробуйте Построение -> Построить решение или Построение -> Перестроить решение. Что-то должно помочь.
В других компиляторах найдите что-то подобное.
C++
1
2
3
j=8
for (int i=1 ,i<=j;i++);
 cin >> a[i];
А сколько в массиве элементов?
tennisru
13 / 13 / 1
Регистрация: 10.09.2011
Сообщений: 179
27.09.2011, 15:36  [ТС]     #include "StdAfx.h" и проблема цикал в компиляторе #3
это имеет значение?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.09.2011, 16:02     #include "StdAfx.h" и проблема цикал в компиляторе #4
Цитата Сообщение от tennisru Посмотреть сообщение
for (int i=1 ,i<=j;i++);
Этот код не может компилироваться, т.к. содержит ошибку.
Если (вдруг, каким-то непостижимым образом) он скомпилировался, то ; в конце лишняя.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
27.09.2011, 18:23     #include "StdAfx.h" и проблема цикал в компиляторе #5
Цитата Сообщение от Deviaphan Посмотреть сообщение
Этот код не может компилироваться, т.к. содержит ошибку.
Если (вдруг, каким-то непостижимым образом) он скомпилировался, то ; в конце лишняя.
Вообще-то это работает. Никакая это не синтаксическая ошибка. Логическая - да, но не синтаксическая.
tennisru
Вам удалась запустить программу?

Вам надо убрать ; после цикла, ибо цикл срабатывает, а потом только один раз вводится элемент массива.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.09.2011, 18:28     #include "StdAfx.h" и проблема цикал в компиляторе #6
У оператора for есть чёткая сигнатура:
for( инициализация ; условие ; инкремент ) тело.
Вариант for (int i=1 , i<=j; i++) не соответствует сигнатуре.
Следовательно, код нужно выкладывать копипастом, а не переписыванием, чтобы не искали ошибок, которых нет.

Добавлено через 2 минуты
Когда цикл завершается, i = 9. Соответственно, если массив а меньше 10, то программа имеет право на тебя обидеться.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
27.09.2011, 18:31     #include "StdAfx.h" и проблема цикал в компиляторе #7
.....
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.09.2011, 18:32     #include "StdAfx.h" и проблема цикал в компиляторе #8
Тело есть всегда. Двоеточие после скобки это тоже тело, оно заменяется на оператор noop и удаляется в процессе оптимизации.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
27.09.2011, 18:33     #include "StdAfx.h" и проблема цикал в компиляторе #9
Цитата Сообщение от Deviaphan Посмотреть сообщение
Когда цикл завершается, i = 9. Соответственно, если массив а меньше 10, то программа имеет право на тебя обидеться.
Ну и что с этого? Не вводится же cin >> a[9]. Последним элементом вводится a[8]
Только, конечно, надо заполнять с 0 элемента, а не с 1, но если у него массив размером в 9 элементов, то все это будет работать.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.09.2011, 18:35     #include "StdAfx.h" и проблема цикал в компиляторе #10
Цитата Сообщение от Chelioss Посмотреть сообщение
Последним элементом вводится a[8]
Это ты только так думаешь. А вводится а[9].
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
27.09.2011, 18:38     #include "StdAfx.h" и проблема цикал в компиляторе #11
Цитата Сообщение от Deviaphan Посмотреть сообщение
Тело есть всегда. Двоеточие после скобки это тоже тело, оно заменяется на оператор noop и удаляется в процессе оптимизации.
Я о том, что это не синтаксическая ошибка, поэтому должно работать.

Добавлено через 1 минуту
Цитата Сообщение от Deviaphan Посмотреть сообщение
Это ты только так думаешь. А вводится а[9].
C++
1
2
3
4
5
6
//i = 7
++i
i<=8? true
//i= 8
++i
i<=8? false
Где вы тут 9 видите?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.09.2011, 18:40     #include "StdAfx.h" и проблема цикал в компиляторе #12
Я и не говорил, что это синтаксическая ошибка. Синтаксическая ошибка раньше.
Чуть выше я её подробно описал.

Добавлено через 48 секунд
Цитата Сообщение от Chelioss Посмотреть сообщение
Где вы тут 9 видите?
Сперва инкремент, потом сравнение. Цикл завершится только тогда, когда I будет больше 8. Т.е. 9.

Добавлено через 1 минуту
Кстати! Этот код вообще не должен компилироваться, т.к. i определена в цикле, а вывод вне его. Я вообще туплю.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
27.09.2011, 18:45     #include "StdAfx.h" и проблема цикал в компиляторе #13
Цитата Сообщение от Deviaphan Посмотреть сообщение
Я и не говорил, что это синтаксическая ошибка. Синтаксическая ошибка раньше.
Чуть выше я её подробно описал.
Это не синтаксическая ошибка. Если есть выход за границу массива, то это ошибка времени выполнения.
А если у него 8 элементов в массиве, то выход за границы не будет.

Добавлено через 1 минуту
Цитата Сообщение от Deviaphan Посмотреть сообщение
Сперва инкремент, потом сравнение.
В очередной итерации i = 8. Итерация закончилась. 8 стала 9 и сразу цикл выходит по условию и дальше итерации не будет, т.е. не будет cin >> a[9]

Добавлено через 13 секунд
Цитата Сообщение от Deviaphan Посмотреть сообщение
Кстати! Этот код вообще не должен компилироваться, т.к. i определена в цикле, а вывод вне его.
Это да.

Добавлено через 2 минуты
Рабочий код:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
int main()
{
    int mas[9] = {1,2,3,4,5,6,7,8,9}; 
    for( int i = 0; i<=8; ++i )
        std::cout << mas[i];
           std::cout << std::endl;
    system( "pause");
    return 0;
}
nxnx
Формучанин
361 / 292 / 16
Регистрация: 02.11.2010
Сообщений: 1,226
27.09.2011, 18:45     #include "StdAfx.h" и проблема цикал в компиляторе #14
Цитата Сообщение от Chelioss Посмотреть сообщение
Это не синтаксическая ошибка. Если есть выход за границу массива, то это ошибка времени выполнения.
и по этому
Цитата Сообщение от Deviaphan Посмотреть сообщение
программа имеет право на тебя обидеться.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.09.2011, 18:46     #include "StdAfx.h" и проблема цикал в компиляторе #15
Цитата Сообщение от Chelioss Посмотреть сообщение
Это не синтаксическая ошибка.
Там запятая вместо двоеточия. В строке 2. А это синтаксическая ошибка.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
27.09.2011, 18:49     #include "StdAfx.h" и проблема цикал в компиляторе #16
Столько шибок, что из-за обсуждении одних, не увидел других.

Добавлено через 1 минуту
Цитата Сообщение от nxnx Посмотреть сообщение
программа имеет право на тебя обидеться.
И как она при компиляции узнает, что возможен выходит за границы массива?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.09.2011, 18:50     #include "StdAfx.h" и проблема цикал в компиляторе #17
При компиляции обижается компилятор. Программа обижается только в рантайме.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
27.09.2011, 18:52     #include "StdAfx.h" и проблема цикал в компиляторе #18
То есть ошибка времени выполнения - это не одно и тоже, что runtime erorr?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2011, 18:53     #include "StdAfx.h" и проблема цикал в компиляторе
Еще ссылки по теме:

Ошибка при "сборке" Cannot open include file: 'stdafx.h': No such file or directory C++
Ошибка с #include"stdafx.h" C++
C++ #include "Sales_item.h" - ошибка "включаемый файл включает самого себя"

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

Или воспользуйтесь поиском по форуму:
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.09.2011, 18:53     #include "StdAfx.h" и проблема цикал в компиляторе #19
Она, родимая.
Yandex
Объявления
27.09.2011, 18:53     #include "StdAfx.h" и проблема цикал в компиляторе
Ответ Создать тему
Опции темы

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