Гайд Перевод Learncpp.com: раздел 0.8 // Несколько распространенных проблем с C++. На русском.

На клавишу insert нажми,и в другой мир попади !
Забаненный
Статус
Оффлайн
Регистрация
24 Июл 2020
Сообщения
101
Реакции[?]
19
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
оПять же Dreammm привует



В этом разделе мы рассмотрим некоторые общие проблемы, с которыми новые программисты сталкиваются с довольно высокой вероятностью. Это не исчерпывающий перечень проблем компиляции или выполнения, а скорее прагматический перечень решений самых основных проблем. Если у вас есть какие-либо предложения по другим вопросам, которые могут быть добавлены в этот список, опубликуйте их в разделе комментариев ниже.



Общие проблемы во время выполнения

Вопрос: при выполнении программы окно консоли мигает, а затем немедленно закрывается.

Во-первых, добавьте или убедитесь, что следующие строки находятся в верхней части вашей программы (пользователи Visual Studio, убедитесь, что эти строки появляются после #include “pch.h "или #include" stdafx.h”, если таковые существуют):


1
2
#include <iostream>
#include <ограничения>

Во-вторых, добавьте следующий код в конце вашей функции main () (прямо перед оператором return):


1
2
3
std::cin.clear ( ) ; / / сброс всех флагов ошибок
std::cin.ignore (std::numeric_limits< std:: streamsize>>::max ( ), '\n' ) ; / / игнорировать любые символы во входном буфере до тех пор, пока мы не найдем символ ввода
std::cin.get ( ) ; / / получить еще один символ от пользователя

Это приведет к тому, что ваша программа будет ждать, пока пользователь нажмет клавишу, прежде чем продолжить, что даст вам время изучить выходные данные вашей программы, прежде чем ваша операционная система закроет окно консоли.
Другие решения, такие как обычно предлагаемое системное решение(“пауза”), могут работать только в определенных операционных системах, и их следует избегать.
Более старые версии Visual Studio могут не приостанавливаться при запуске программы в режиме Start With Debugging (F5). Попробуйте запустить программу в режиме Start Without Debugging (Ctrl-F5).
Вопрос: я запустил свою программу и получил окно, но без вывода.

Ваш антивирусный сканер или защита от вредоносных программ могут блокировать выполнение. Попробуйте временно отключить его и посмотреть, не в этом ли проблема.
Вопрос: моя программа компилируется, но она работает неправильно. Что же мне делать?

Отладьте его! Ниже в главе 3 приведены советы по диагностике и отладке программ.
Общие проблемы времени компиляции

Вопрос: когда я компилирую свою программу, я получаю ошибку о неразрешенном внешнем символе _main или _WinMain@16

Это означает, что ваш компилятор не может найти вашу функцию main (). Все программы должны включать функцию main ().
Есть несколько вещей, которые нужно проверить:
а) включает ли ваш код функцию с именем main?
б)правильно ли пишется main?
c) когда вы компилируете свою программу, видите ли вы файл, содержащий функцию main () get compiled? Если нет, либо переместите функцию main () в ту, которая есть, либо добавьте файл в свой проект (см. урок
Пожалуйста, авторизуйтесь для просмотра ссылки.
для получения дополнительной информации о том, как это сделать).
d) вы создали консольный проект? Попробуйте создать новый консольный проект.
Вопрос: я пытаюсь использовать функциональность C++11/14/17 / XX, но она не работает

Если ваш компилятор устарел, он может не поддерживать эти более поздние дополнения к языку. В этом случае обновите свой компилятор.
Для современных IDE / компиляторов ваш компилятор может по умолчанию использовать более старый языковой стандарт. Мы рассмотрим, как изменить ваш языковой стандарт в уроке
Пожалуйста, авторизуйтесь для просмотра ссылки.
.
Вопрос: при попытке использовать cin, cout или endl компилятор говорит, что cin, cout или endl - это "необъявленный идентификатор"

Во-первых, убедитесь, что вы включили следующую строку в верхней части вашего файла:

1#include <iostream>

Во-вторых, убедитесь, что каждое использование cin, cout и endl имеет префикс “std::”. Например:


1std::cout << " Привет, мир!" << std::endl;

Если это не исправит вашу проблему, то, возможно, ваш компилятор устарел или установка повреждена. Попробуйте переустановить и / или обновить компилятор до последней версии.
Вопрос: при попытке использовать endl для завершения печатной строки компилятор говорит, что end1 - это "необъявленный идентификатор"

Убедитесь, что вы не перепутали букву l (нижний регистр L) в endl с цифрой 1. эндл - это все буквы. Убедитесь, что ваш редактор использует шрифт, который делает ясными различия между буквой нижний регистр L, верхний регистр i и цифрой 1. Кроме того, букву " О "и цифру" ноль " можно легко перепутать во многих непрограммных шрифтах.
Проблемы Visual Studio

Вопрос: при компиляции с Microsoft Visual C++ вы получаете фатальную ошибку C1010 с сообщением об ошибке типа "c:\vcprojects\test.cpp (263): фатальная ошибка C1010: неожиданный конец файла при поиске предварительно скомпилированной директивы заголовка"

Эта ошибка возникает, когда компилятор Microsoft Visual C++ настроен на использование предварительно скомпилированных заголовков, но один (или несколько) из ваших файлов кода C++ не #включает “stdafx.h "или #include" pch.h " в качестве первой строки файла кода.
Наше предлагаемое исправление состоит в том, чтобы отключить предварительно скомпилированные заголовки, что мы покажем, как это сделать в уроке
Пожалуйста, авторизуйтесь для просмотра ссылки.
.
Если вы хотите сохранить включенными предварительно скомпилированные заголовки, чтобы устранить эту проблему, просто найдите файл(ы), вызывающий ошибку (в приведенной выше ошибке test.cpp является виновником), и добавьте следующую строку в самом верху файла(ов):


1#include "pch.х"

Более старые версии Visual Studio используют “stdafx.h "вместо" pch.h”, так что если pch.h не решает проблему, попробуйте stdafx.х.
Обратите внимание, что для программ с несколькими файлами каждый файл кода C++ должен начинаться с этой строки.
Кроме того, можно отключить предварительно скомпилированные заголовки.
Вопрос: Visual Studio выдает следующую ошибку: "1MSVCRTD.lib (exe_winmain.obj): ошибка LNK2019: неразрешенный внешний символ _WinMain@16, на который ссылается функция " int _ _ cdecl invoke_main(void)" (?invoke_main@@YAHXZ)"

Скорее всего, вы создали графическое приложение Windows, а не консольное приложение. Воссоздайте свой проект и убедитесь, что он создан как консольный проект Windows (или Win32).
Вопрос: когда я компилирую свою программу, я получаю предупреждение о том, что "не могу найти или открыть файл PDB"

Это предупреждение, а не ошибка, поэтому оно не должно влиять на вашу программу. Однако это раздражает. Чтобы исправить это, перейдите в меню отладки - > параметры и настройки - > > символы и установите флажок "Microsoft Symbol Server".
Что-то еще

В.: У меня есть еще одна проблема, которую я не могу решить. Как я могу быстро получить ответ?

По мере прохождения материала у вас, несомненно, возникнут вопросы или возникнут неожиданные проблемы. Что делать дальше, зависит от вашей проблемы. Но в целом, есть несколько вещей, которые вы можете попробовать.
Во-первых, спросите Google . Найдите хороший способ сформулировать свой вопрос и выполните поиск в Google. Если вы получили сообщение об ошибке, вставьте точное сообщение в google с помощью кавычек.
Скорее всего, кто-то уже задал тот же вопрос, и вас ждет ответ.
Если это не удастся, спросите на доске вопросов и ответов . Существуют веб-сайты, предназначенные для программирования вопросов и ответов, таких как
Пожалуйста, авторизуйтесь для просмотра ссылки.
. Попробуйте разместить свой вопрос там. Не забудьте тщательно разобраться в том, в чем заключается ваша проблема, и включить всю необходимую информацию, например, какую ОС вы используете и какую IDE используете.
 
Последнее редактирование:
На клавишу insert нажми,и в другой мир попади !
Забаненный
Статус
Оффлайн
Регистрация
24 Июл 2020
Сообщения
101
Реакции[?]
19
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
дальше мне лень всо дреам дальше ты
 
null
Участник
Статус
Оффлайн
Регистрация
3 Окт 2014
Сообщения
700
Реакции[?]
498
Поинты[?]
0
1
2
#включить <iostream>
#Включить <ограничения>

1
2
3
std::cin.clear ( ) ; / / сброс всех флагов ошибок
std::cin.игнорировать (std:: numeric_limits< std:: streamsize>>:: max ( ), '\n' ) ; / / игнорировать любые символы во входном буфере до тех пор, пока мы не найдем символ ввода
std::cin.get ( ) ; / / получить еще один символ от пользователя

1#включить <iostream>

1std :: cout << " Привет, мир!" << std :: endl;
Ты чё тут высрал то?
первый момент хуета, второй тоже "cin.игнорировать", третий момент хуета, а в 4 моменте "std :: cout", "std :: endl" с пробелами, у чайников оно не скомпилится
 
На клавишу insert нажми,и в другой мир попади !
Забаненный
Статус
Оффлайн
Регистрация
24 Июл 2020
Сообщения
101
Реакции[?]
19
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ты чё тут высрал то?
первый момент хуета, второй тоже "cin.игнорировать", третий момент хуета, а в 4 моменте "std :: cout", "std :: endl" с пробелами, у чайников оно не скомпилится
ща пофикшу
 
На клавишу insert нажми,и в другой мир попади !
Забаненный
Статус
Оффлайн
Регистрация
24 Июл 2020
Сообщения
101
Реакции[?]
19
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу