이 코드는 C/C++이며 경고 또는 디버그 메시지없이 실행됩니다. 나는 Code :: blocks을 GNU GCC 컴파일러와 함께 사용하고있다. 이 응용 프로그램은 완벽하게 한 번 작업 한 다음 어딘가에 내가 눈치 채지 못한 선을 따라 작업했습니다. 이제는 매번 IP 주소 입력을 허용하지만 정지 후 닫습니다. 왜?왜이 서브넷 클래스 어플리케이션이 정지합니까?
#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
int ip[3];
char * inputIP;
int x;
string classValue;
void subnetClass()
{
if (x==0) classValue="Error: first octet may not be zero.";
if (x>0 && x<=126) classValue="Class A";
if (x==127) classValue="Loopback Address";
if (x>=128 && x<=191) classValue="Class B";
if (x>=192 && x<=223) classValue="Class C";
if (x>=224 && x<=239) classValue="Class D";
if (x>=240 && x<=255) classValue="Class E";
if (x>255) classValue="Error: an octet may not be more than 255.";
cout << classValue << endl;
}
int main()
{
cout << "Enter IP address in dotted-decimal form." << endl;
cin >> inputIP;
scanf(inputIP, "%d.%d.%d.%d" , &ip[0],&ip[1],&ip[2],&ip[3]);
int x=ip[0];
subnetClass();
return 0;
}
빌드 로그 : C :
존재 여부를 확인하기는 ... \ 디버그 \ IP 서브넷 \ IP 서브넷 응용 프로그램 \ 빈은
실행
을 App.exe가 "C를 .. . \ IPB 서브넷 응용 프로그램 \ bin \ Debug \ IP 서브넷 지정 app.exe "(C : ... \ IP 서브넷 응용 프로그램)프로세스가 상태와 함께 종료되었습니다. -1073741510 (0 분 27 초)
들여 쓰기를하십시오. 그리고 당신의 프로그램은 C++ 또는 C입니다; 둘 다 될 수는 없습니다. (C처럼 보이지는 않습니다.) 디버거를 통해 실행 했습니까? _and_ close를 어떻게 멈출 수 있습니까? –
존재하지 않는 C 스타일의 문자열에 문자열을 추출합니다 ('inputIP'는 초기화되지 않은 포인터 임). –
'int ip [3]', 3 개의 int (인덱스 0..2)의 배열을 선언 한 다음 배열 끝을 지나가는'ip [3]'에 씁니다. – Blastfurnace