Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 5

Перевод из C в С++

14.09.2013, 15:34. Показов 3608. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я делал проект в C, но вдруг требования поменялись, и теперь я должен перевести его в C++. Есть ли какой-нибудь простенький способ, если нет, то прошу приложить какую-нибудь литературу по данной теме...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.09.2013, 15:34
Ответы с готовыми решениями:

Перевод кода с Паскаля (перевод в метры)
var a,b,d:integer; c,e:real; begin writeln('1-дециметр 2-километр'); writeln('3-метр 4-миллиметр'); ...

Заменить в строке все пробелы на перевод строки, а перевод строки изменить на два перевода
Меня интересует следующий вопрос: как заменить в моем стринге все пробелы на переходы на новую строку, а переходы на новую строку изменить...

Разбиение строки на части, перевод строки в число и перевод числа
Есть задание: 1. Необходимо реализовать консольное приложение, позволяющее манипулировать строкой, разбив ее на элементы путем...

14
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
14.09.2013, 15:43
amerbek, в принципе практически перевод не понадобится. Разве что изменить название инклудов и ещё по мелочи. Всё зависит от функций, которые использовались. Или же можно этот код закинуть в библиотеку, а обертку на С++ написать.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
14.09.2013, 15:46
самое простое - ничего не изменять, а переименовать файлы с расширением *.c на *.cpp
0
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 5
14.09.2013, 16:04  [ТС]
А можно поконкретней про эти мелочи...
Вот код интеграла в C
взятый мной с википедии, какие изменения я должен внести, чтобы он работал в C++ компиляторе?

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
26
27
28
#include <stdio.h>
#include <math.h>
 
double f(double x){ //Подынтегральная функция
   return sin(x); //Например, sin(x)
}
 
double rectangle_integrate(double a, double b, int n, double (*f)(double) ){
   double result, h;
   int i;
 
   h = (b-a)/n; //Шаг сетки
   result = 0.0;
 
   for(i=1; i <= n; i++){
      result += f( a + h * (i - 0.5) ); //Вычисляем в средней точке и добавляем в сумму
   }
   result *= h;
 
   return result;
}
 
int main(void){
   double integral;
   integral=rectangle_integrate(0,2,100,f);
   printf("The value of the integral is: %lf \n", integral);
   return 0;
}
0
52 / 52 / 14
Регистрация: 06.02.2013
Сообщений: 155
14.09.2013, 16:05
код для си почти всегда работает на c++, это не исключение.
0
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 5
14.09.2013, 16:09  [ТС]
rublag, дело в том, что мой проект часть большего проекта, поэтому всё должно быть написано одним языком, в этом то и проблема...
0
14.09.2013, 16:17

Не по теме:

Да заканчивай спорить! Если ты знаешь С++, сам поймёшь, надо изменять что-то или не надо!
А если не знаешь, тогда зачем споришь, ё-моё?!

0
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 5
14.09.2013, 17:21  [ТС]
С плюсами не знаком, затем и спрашиваю...
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
14.09.2013, 17:59
Цитата Сообщение от amerbek Посмотреть сообщение
поэтому всё должно быть написано одним языком
написать одним языком, или написать в одном стиле? Это разные вещи. Тот код, который у Вас приведен можно не трогать вообще. И всё должно работать, если конечно работает в C
Если нужно не просто чтобы программа работала, а чтобы и стиль был C++, то заменить <stdio.h> на <iostream>, <math.h> на <cmath>, printf на std::cout и т.д.
0
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 5
14.09.2013, 20:01  [ТС]
Tulosba, спасибо, попробую...
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
15.09.2013, 00:09
Цитата Сообщение от ВАСИЛЕВС Посмотреть сообщение
Разве что изменить название инклудов и ещё по мелочи.
Зачем менять include'ы?

Цитата Сообщение от rublag Посмотреть сообщение
код для си почти всегда работает на c++
Почти тут не просто так

Цитата Сообщение от amerbek Посмотреть сообщение
поэтому всё должно быть написано одним языком, в этом то и проблема...
Хм..
0
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
15.09.2013, 19:18
Цитата Сообщение от Qwertiy Посмотреть сообщение
Зачем менять include'ы?
Например ctype.h в C++ имеет имя cctype.h, а stdlib.h - cstdlib.h . О таких переименованиях я и писал. Или я не прав?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
15.09.2013, 22:05
Цитата Сообщение от ВАСИЛЕВС Посмотреть сообщение
Например ctype.h в C++ имеет имя cctype.h, а stdlib.h - cstdlib.h . О таких переименованиях я и писал. Или я не прав?
c++ версии заголовочных файлов идут без расширений. Префикс "c" указывает, что файл принадлежит библиотеке си, но идентификаторы при этом объявлены в пространстве имен std.
1
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
15.09.2013, 22:15
Цитата Сообщение от Tulosba Посмотреть сообщение
c++ версии заголовочных файлов идут без расширений.
Не обратил внимания, надо запомнить.
Цитата Сообщение от Tulosba Посмотреть сообщение
Префикс "c" указывает, что файл принадлежит библиотеке си, но идентификаторы при этом объявлены в пространстве имен std.
Это мне известно. Предполагаю, что в данном случае надо будет заменить имена гидеров, добавив "c", если используются функции с библиотеки Си.
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
15.09.2013, 23:10
Цитата Сообщение от ВАСИЛЕВС Посмотреть сообщение
Например ctype.h в C++ имеет имя cctype.h, а stdlib.h - cstdlib.h . О таких переименованиях я и писал. Или я не прав?
Ну про то что без расширения, уже сказали.
Такая замена, например <math.h> на <cmath> может привести к тому, что код не скомпилируется (по крайней мере в VS). Поэтому я и сказал, что вполне можно не менять include'ы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.09.2013, 23:10
Помогаю со студенческими работами здесь

Перевод с C++ в C#
Подскажите, как переделать данный код в C# в этой задаче: Вася — начинающий математик — решил сделать вклад в развитие этой науки и...

Перевод на c#
program Param16; type RArray = array of real; Matrix = array of real; var A:RArray; K,M,N:integer; B:Matrix;

Перевод C# на C
Нужно перевести программу на C public override object CalculateResult() { return GetNumUnrestrictedPartitions(100) - 1; }...

Перевод c C++ в C#
Переведите пожалуйста,кому не трудно # include &lt;stdio.h&gt; # include &lt;stdbool.h&gt; bool isPrime(int n) { ...

Перевод из 10-ой в 16-ую СС
Подскажите пожалуйста, каким образом компилятор c# переводит числа из 10-ой в 16-уз ситник. То ест в коде я использую 10-ую , а в IL-коде...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru