나는 내 수업을 위해이 프로그램을 작성했다. GNU g ++ 컴파일러로 컴파일하고 실행하는 것으로 나타났습니다. 저의 교수님은 Microsoft Visual Studio 컴파일러를 사용하는 웹 사이트에서 프로그램을 자동 완성하여 오류가 발생합니다. 또한 BSD clang 컴파일러에서이 프로그램을 시험해 보았는데 완전히 다른 오류가 발생했습니다.이 C++ 프로그램이 일부 컴파일러에서는 작동하지만 다른 컴파일러에서는 작동하지 않는 이유는 무엇입니까? C++ 컴파일러의 주요 차이점은 무엇입니까?
#include <iostream>
#include <cstring>
#include <cmath>
#include <cstdlib>
using namespace std;
double dec2Bin(int value, char binaryString[])
{
int x = 1;
string hold = "";
while(x <= value){
x *= 2;
}
x /= 2;
while(x >= 1){
//cout << x << " ";
if(value > x){
hold += "1";
value -= x;
}
else if(value < x){
hold += "0";
}
else if(value == x){
hold += "1";
value = 0;
//return hold;
}
x /= 2;
//cout << hold << endl;
}
return atoi(hold);
}
int main()
{
char binstr[100];
int num = 0;
cout << "Enter a decimal string: ";
cin >> num;
cout << "its "<<dec2Bin(num, binstr) << endl;
}
는 어떻게이 모든 컴파일러 그렇게 다른 점은? 내 컴파일러에서 코드가 작동하는지 확인하기 위해 할 수있는 일이 있습니까?
선택의 당신의 컴파일러를 사용하고 최대까지 그것의 경고 수준을 크랭크 방법을 배우십시오. 모든 경고를 수정하십시오. – nvoigt
아, 교수님이 Visual Studio를 사용하여 코드를 확인한 사실을 알고 계시면 Visual Studio를 사용하십시오. 코드를 보내기 전에 한 번 이상. 무료입니다. 그것은 "완벽한 책 및 표준"솔루션이 아니지만 최고의 성적을 얻는 솔루션입니다. – nvoigt
이것이 GCC와 함께 작동했다면 놀랄 것입니다. 어떤 버전을 사용하셨습니까? – juanchopanza