PDA

View Full Version : تبدیل کد CPP به C (جمع و تفریق مبنای 16)



daniel_0247
چهارشنبه 11 اسفند 1389, 09:57 صبح
سلام به تمامی دوستان ، این کد به زبان ++C هستش ، اگر کمکی کنید ، میخوان این رو به C تبدیل کنم ، چطور syntax رو عوض کنم ؟؟



#include <iostream>
#include <string>
#include <strstreamtream>

using namespace std;

string MyDecConvertHex(long a);
long MyHexConvertDec(const string & hexstr);
string MyAddHex(const string & FHex, const string & SHex);
string MyAddSub(const string & FHex, const string & SHex);

void main()
{
string FHex, SHex;
cout << endl << "Enter Your Numbers: " << endl << endl;
cout << "First Hex Number: ";
cin >> FHex;
cout << "Second Hex Number: ";
cin >> SHex;
cout << "Sum Is: " << MyAddSub(FHex,SHex) << endl;
cin >> FHex;
}

string MyAddHex(const string & FHex, const string & SHex)
{
long x1, x2;
x1 = MyHexConvertDec(FHex);
x2 = MyHexConvertDec(SHex);
return MyDecConvertHex(x1+x2);
}
string MyAddSub(const string & FHex, const string & SHex)
{
long x1, x2;
x1 = MyHexConvertDec(FHex);
x2 = MyHexConvertDec(SHex);
return MyDecConvertHex(x1-x2);
}

string MyDecConvertHex(long i)
{
stringstream strstream;
string str;
hex(strstream);
uppercase(strstream);
strstream << i;
strstream >> str;
return str;
}

long MyHexConvertDec(const string & hexstr)
{
stringstream strstream;
long i = 0;
hex(strstream);
strstream << hexstr;
strstream.clear();
strstream >> i;
return i;
}

daniel_0247
چهارشنبه 11 اسفند 1389, 19:30 عصر
دوستان ، من میخوام با استفاده از این function هایی که نوشتم دو تا مقدار هگزا رو یا جمع کنم یا تفریق ، حالا اگر کد C رو در این مورد دارین ، لطفا راهنمایی کنید .

drstrike
جمعه 13 اسفند 1389, 09:56 صبح
C++ to C رو سرچ کنید. البته اغلب برنامه هایی که در این رابطه ساختن درست کار نمی کنند.
راه ساده ترش اینه که کد رو توی IDE باز کنید و کلمات رو Replace کنید. مثلا به جای cin<< از printf( استقاده کنید.

daniel_0247
جمعه 13 اسفند 1389, 11:25 صبح
ممنون دوست من ، در کل من میخواستم بدونم اگر کسی روی این دو زبان مسلط هست کمکی کنه ، بهر حال من این کد رو نوشتم ، امیدوارم برای بقیه دوستان هم مفید باشه .


#include <stdio.h>
main()
{
while(0 < 1){
system("cls");
char NumOne[80] = "";
char NumTwo[80] = "";
int op;
printf("Select Operation Number : \n\n") ;
printf(" 1. Hexadecimal Addiotion\n\n");
printf(" 2. Hexadecimal Subtraction\n\n");
printf(" Enter : ");
scanf("%d" , &op);
switch(op)
{
case 1 :
{
getchar();
printf("\n");
printf(".... Calculate Addiotion ....\n\n");
printf(" Enter First Number : ") ;
fgets(NumOne, sizeof(NumOne), stdin);
printf("\n");

printf(" Enter Second Number : ") ;
fgets(NumTwo, sizeof(NumTwo), stdin);
printf("\n");

int GetNumOne = HexToInt(NumOne);
int GetNumTwo = HexToInt(NumTwo);

int result = GetNumOne + GetNumTwo ;
printf(" Addition Result Is : %x" , result);
getchar();
break;
}

case 2 :
{
getchar();
printf("\n");
printf(".... Calculate Subtraction ....\n\n");
printf(" Enter First Number : ") ;
fgets(NumOne, sizeof(NumOne), stdin);
printf("\n");

printf(" Enter Second Number : ") ;
fgets(NumTwo, sizeof(NumTwo), stdin);
printf("\n");

int GetNumOne = HexToInt(NumOne);
int GetNumTwo = HexToInt(NumTwo);

int result = GetNumOne - GetNumTwo ;
printf(" Subtraction Result Is : %x" , result);
getchar();
break;

}

default :
{
getchar();
printf("\n") ;
printf("............... Error ! Please Enter True Value ...............") ;
getchar();
break ;
}
//End CASE
}

}
}

int HexToInt( const char* hexStr )
{
int hexInt;
sscanf( hexStr, "%x", &hexInt );
return hexInt;
}