Jayfam Ответов: 2

измените код C++ на C


Кто-нибудь знает конвертер C++в C? Я не могу найти конвертер, но он мне нужен для преобразования C++-кодирования в C.


Комментарий от Смитерса-Джонса: я удалил ваш новый вопрос и поместил содержание ниже в этот вопрос, так как они, очевидно, связаны.


#include <iostream>

using std::cin;
using std::cout;
using std::endl;

int main()
{
int numberM = 0;
cout << endl << "Enter m: ";
cin >> numberM;

int numberN = 0;
cout << endl << "Enter n: ";
cin >> numberN;

for (int i = (numberM + 1); i < numberN; i++)
{
cout << endl << i;
}

cout << endl;
system("PAUSE");
return 0;
}


могу ли я знать, что приведенная выше кодировка показывает программу, принимающую 2 числа m и n и отображающую все числа между m и n? могу ли я знать, как изменить код c++, чтобы превратить его в c?

Albert Holguin

почему вы хотите конвертировать C++ в C?

Jayfam

я нашел кодирование на c++, которое мне было нужно, но я хочу его на c, потому что я изучаю c и не изучаю c++ раньше

Albert Holguin

даже если там может быть конвертер, я никогда его не видел, вы всегда можете опубликовать куски кода, которые вы не понимаете, в CodeProject Q&A и попросить разъяснений.

Jayfam

ок, спасибо

Smithers-Jones

Я удалил ваш новый вопрос и поместил содержание ниже в этот вопрос, так как они, очевидно, связаны. Вы всегда можете улучшить свой вопрос, вместо того чтобы начинать новый.

Jayfam

хорошо, спасибо

2 Ответов

Рейтинг:
5

Albert Holguin

Вот как должен выглядеть код (без проверки ошибок, которую вы должны добавить):

int main()
{
 int numberM =0, numberN=0, i=0;

 printf("Enter m: ");
 scanf("%d", &numberM);
 printf("Enter n: ");
 scanf("%d", &numberN);

 for(i = (numberM +1); i<numberN; i++)
	printf("%d\n", i);

 return 0;
}


Вещи, которые вы должны знать, которые были заменены и почему:
1) Все std объекты и функции пространства имен являются C++, они были заменены соответствующими вызовами printf/scanf.
2) В C все объявления переменных должны происходить в начале функции, а не в случае с C++.

Чего не хватает в этом коде:
1) Проверка на наличие ошибок
2) scanf не является типобезопасным, то есть результат ввода пользователем неправильного типа ввода не определен


CPallini

5.

Рейтинг:
19

OriginalGriff

Почему? Это не будет слишком полезно, если это действительно C++.

Основной синтаксис C++ - C. Таким образом, можно написать программу на C++. Действительно, некоторые "профессионалы" никогда не делали ничего другого.

Однако C++ - это главное надмножество C, содержащее огромное количество материала, которого просто нет в базовом языке. Например, классы. Полиморфизм. Почти все, что делает C++ пригодным для использования в качестве современного языка.

Хотя они действительно существуют (ранние компиляторы C++ были именно такими, и быстрый Google найдет вам что-то, что сделает эту работу) преобразование C++ в C было бы очень ретроградным шагом и не даст ничего, что вы хотели бы поддерживать или действительно смотреть слишком долго.

Есть ли конкретная причина, по которой вы хотите это сделать? Потому что если нет, я бы настоятельно рекомендовал вам придерживаться C++.


Jayfam

но сейчас я учусь программированию на Си

OriginalGriff

Итак, если вы изучаете C сейчас, почему вы хотите перевести C++? Он не будет производить хороший C, потому что он будет переводить структуры и концепции в более ограниченную среду!

Jayfam

ОИК, я понимаю, что ты имеешь в виду. спасибо

Sergey Alexandrovich Kryukov

хороший ответ. Мой 5.
--СА