МЭИ(ТУ) *** 75 лет *** MPEI(TU) Московский Энергетический Институт (Технический Университет)

Сайт Гречкиной Полины Викторовны

30 лет Кафедре Прикладной математики АВТИ МЭИ(ТУ)
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » 2019 » Март » 19 » изменения в программах на Си в разных средах
18:32
изменения в программах на Си в разных средах

В примерах к лабораторным занятиям и в лекциях программы написаны для установленной в компьютерных классах версии С++ из Borland Developer Studio 2006. До включения в студию среда называлась C++ Builder, в ней должно все работать и так.

Если вы пользуетесь дома другими средами, то понадобятся некоторые изменения, например:

Для С вместо С++ в консольном приложении без классов:

  • выделение памяти не new/delete, а функциями calloc/free
  • тип структуры является меткой в пространстве структур, а не отдельным типом, и используется только совместно со словом struct  (struct TElem вместо просто TElem)
  • передача параметра по ссылке(&) не возможна, можно только явно по адресу(*): void f(int *n){ *n=10;) вызов: int n;  f(&n); вместо в C++: void f(int &n){ *n=10;) и вызов: int n;  f(n); (неявная передача адреса)
  • return обязателен в любой функции, даже в самом конце тела функции с результатом void
  • и другие нюансы есть...

Для C++ из Code::Blocks IDE

  • результатом функции main должен быть int, соответственно во всех return main надо указать целое число в качестве результата, например, return 0;
  • не нужна руссификация (в русской версии), она встроенная - не нужно подключать  модуль window.h и вызывать SetConsoleCP и SetConsoleOutputCP
  • задержка экрана перед завершением программы выполняется автоматически - не нужно вызывать getch и подключать conio.h можно использовать ввод символа или символов с помощью scanf char ch=0; scanf("%c", &ch);
  • randomize надо заметить на srand из того же модуля - вызовите srand(time(0)); и подключите модуль time.h для работы с временем
  • полный путь к программе не должен содержать пробелов и символов кириллицы, например, папок "Рабочий стол", "Мои документы", "Мои программы", "Проги" и т.д. 

Для C++ из Visual Studio

  • в начале программы в зависимости от версии надо подключить особый модуль: #include "stdafx.h" либо  #include "pch.h"
  • модули языка С могут подключатся без указания расширения с добавлением буквы с, например, вместо <stdio.h> можно просто <cstdio>
  • если результатом функции main должен быть int, то во всех return main надо указать целое число в качестве результата, например, return 0;
  • КОДИРОВКИ - в зависимости от версии если не работает указанный в примере способ руссификации, то попробуйте setlocale(LC_ALL, "RUS"); (подключите <locale.h>) или конкретную кодировку setlocale(LC_ALL, "ru_RU.ANSI"); или setlocale(LC_ALL,"ru_RU.UTF-8"); Кодировка должна совпадать с кодировкой, в которой сохранен текстовый файл, из которого происходит чтение (в лаб.7).
  • чтобы использовать scanf нужно в начале программы добавить указание: #pragma warning(disable: 4996)  , если не получится, можно заменить все же scanf на scanf_s
  • задержка экрана - замените getch на _getch , либо попробуйте  system("pause");
  • randomize надо заметить на srand из того же модуля - вызовите srand(time(0)); и подключите модуль time.h для работы с временем

Если что-то забыла или перепутала, напишите, и добавлю информацию сюда для общего пользования.

Просмотров: 769 | Добавил: grechkinapv | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Календарь
«  Март 2019  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031
Архив записей
Друзья сайта
  • Создать сайт
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Все проекты компании
  • Copyright Гречкина Полина Викторовна © 2021
    Конструктор сайтов - uCoz