9 / 9 / 6
Регистрация: 16.10.2011
Сообщений: 423
|
||||||
1 | ||||||
Не удается открыть источник файл "stdafx.h" и не только21.09.2014, 20:20. Показов 137412. Ответов 41
Метки нет (Все метки)
Вообщем ситуация: написал код в универе на visual studio 2008, пришел домой, скопировал этот же код в 2013 версию и получил следующие ошибки: 1)Не удается открыть источник файл "stdafx.h" 2)идентификатор "printf" не определен 3)идентификатор "scanf" не определен. В универе все работает. код:
0
|
21.09.2014, 20:20 | |
Ответы с готовыми решениями:
41
Не удается открыть источник файл "stdafx.h Ошибка "E1696 не удается открыть источник файл stdafx.h" Ошибка E1696 не удается открыть источник файл "stdafx.h" Не удается открыть источник файл "stdafx.h" |
Модератор
13690 / 10895 / 6470
Регистрация: 18.12.2011
Сообщений: 29,077
|
||||||
21.09.2014, 20:25 | 2 | |||||
Замените на
1
|
9 / 9 / 6
Регистрация: 16.10.2011
Сообщений: 423
|
|
21.09.2014, 20:28 [ТС] | 3 |
Выдает новую ошибку: error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
0
|
Модератор
13690 / 10895 / 6470
Регистрация: 18.12.2011
Сообщений: 29,077
|
||||||
21.09.2014, 20:43 | 4 | |||||
scanf_s - это микрософтовская приблуда.
Поскольку Вы используете C++, то советую все scanf заменить на потоковые классы (cin,cout)
1
|
9 / 9 / 6
Регистрация: 16.10.2011
Сообщений: 423
|
|
21.09.2014, 20:56 [ТС] | 5 |
Дело в том что в универе мы вроде как пишем на си, но в визуале так же выбираем проект с++, моя цель это возможность компилировать тот код который я делаю в универе дома, без установки визуала 2008 года. Может можно как то подключить stdafx.h? как я понял printf и scanf в нем и лежат.
0
|
Модератор
13690 / 10895 / 6470
Регистрация: 18.12.2011
Сообщений: 29,077
|
|
21.09.2014, 21:03 | 6 |
printf и scanf Лежат в <stdio.h>
А stdafx.h - это файл предварительно скомпилированных заголовков. Если создается пустой проект, то такой файл включать не надо.
1
|
9 / 9 / 6
Регистрация: 16.10.2011
Сообщений: 423
|
|
21.09.2014, 21:21 [ТС] | 7 |
То есть из вариантов только качать 2008 версию и более никак?
0
|
Модератор
13690 / 10895 / 6470
Регистрация: 18.12.2011
Сообщений: 29,077
|
|
21.09.2014, 21:32 | 8 |
Нелогичный вывод.
Поменяйте scanf на scanf_s и ВСЕ!
1
|
Модератор
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,690
|
|
21.09.2014, 21:51 | 9 |
Сообщение было отмечено Убежденный как решение
Решение
printf и scanf это небезопасные функции
соответственно микрософт ввел свои( scanf_s) до 2010 scanf вызывал предупреждение, сейчас ошибку где то это отключается,но у меня фирменная 2008,менять не планирую, посему не могу подсказать где, поищи по форуму или воспользуйся советом zss, тем более что scanf_s в 2008 есть
1
|
9 / 9 / 6
Регистрация: 16.10.2011
Сообщений: 423
|
|
21.09.2014, 22:11 [ТС] | 10 |
Увы scanf_s не спасает, на этот раз ошибка error C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details. И что то мне подсказывает что в дальнейшем при попытке запустить код с универа дома будут возникать проблемы требующие изменения кода, а чем дальше в лес тем больше кода придется править, поэтому более логичного решения кроме как поставить версию 2008, которая каким то неизвестным мне способом компилирует то что не компилирует 2013.
0
|
Модератор
13690 / 10895 / 6470
Регистрация: 18.12.2011
Сообщений: 29,077
|
|
21.09.2014, 22:14 | 11 |
То же самое замените getch на _getch
Добавлено через 1 минуту Не будет - в 2008 студии - это выводилось как предупреждения.
1
|
9 / 9 / 6
Регистрация: 16.10.2011
Сообщений: 423
|
||||||
21.09.2014, 23:07 [ТС] | 12 | |||||
А проблемки все таки возникают не только со scanf и и getch. Вот например второй код
И собственно из этого я и сделал вывод что в дальнейшем придется много чего править что бы запустить компиляцию.
0
|
Модератор
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,690
|
||||||
21.09.2014, 23:15 | 13 | |||||
правильно
это безопасная функция, ей нужно еще количество символов дать приведу пример чтоб было понятно
и все программа рухнет, переполнение стека в scanf_s вводишь количество символов(2) и можешь хоть завводится, больше 2х символов не запишет вывод: или пользуйся микросовтовскими примочками, или используй другой компилятор, например Qt он бесплатный
1
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
21.09.2014, 23:55 | 14 |
Как отключить в свойсвах проекта:
https://www.cyberforum.ru/post5488517.html Или, выше всех инклудов, прописать: #define _CRT_SECURE_NO_WARNINGS (для getch() не работает, нужно заменить на _getch()). Или ниже всех инклудов прописать: #pragma warning(disable : 4996)
2
|
Рожденная для битвы
293 / 71 / 15
Регистрация: 08.11.2009
Сообщений: 1,265
|
|
06.10.2014, 09:08 | 15 |
alsav22, #define _CRT_SECURE_NO_WARNINGS не помогло почему-то, только #pragma warning(disable : 4996)
Что означает тип errno_t?
0
|
Рожденная для битвы
293 / 71 / 15
Регистрация: 08.11.2009
Сообщений: 1,265
|
||||||
06.10.2014, 09:18 | 17 | |||||
alsav22, необходимо же после всех ошибок. Беда в том, что от него никакого толка. Все равно вылазит ошибка
0
|
Рожденная для битвы
293 / 71 / 15
Регистрация: 08.11.2009
Сообщений: 1,265
|
|
06.10.2014, 09:24 | 19 |
alsav22, необходимо же после всех инклудов. Правка
Добавлено через 1 минуту Подскажите лучше про Что означает тип errno_t?
0
|
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
06.10.2014, 09:29 | 20 |
Кому необходимо? Чтобы работало:
Добавлено через 46 секунд Лучше делайте правильно, и не пишите, что не работает, если делаете по-своему.
0
|
06.10.2014, 09:29 | |
06.10.2014, 09:29 | |
Помогаю со студенческими работами здесь
20
не удается открыть источник файл "stdafx.h" Ошибка: "Не удается открыть источник stdafx.h" Не удается открыть файл включение: StdAfx.h: No such file or directory Не удается открыть файл включение: stdafx.h: No such file or directory Не удается открыть файл include: stdafx.h: No such file or directory Fatal error C1083: Не удается открыть файл включение: stdafx.h: No such file or directory Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |