#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
unsigned short  adress,port;
cout<<"Ip adress"<<endl;
cin>>adress;//rtsp协议的example4例子,就是这样的unsigned short 类型啊!!!!
cout<<endl;
cout<<"Port"<<endl;
cin>>port;
cout<<endl;
return 0;
}

解决方案 »

  1.   

    肯定是不对的啊。192.168.1.15怎么成了unsigned short型呢?
      

  2.   

    你可以先输入字符串,然后再用inet_addr转成unsigned long,因为是四个字节的,不能用unsigned short
      

  3.   

    因为unsigned short  adress不能存下你输入的192.168.1.15,缓存区中还有数据,下次输入Port时,直接从缓存区中读取了。
    修改方法:
    1.在cin>>adress之后清楚一下缓存区。(因为unsigned short太小,你输入的IP会被截断)
    不推荐使用这种。
    2.adress类型修改成string就OK了。详见下面:
    方法1#include "stdafx.h"
    #include <iostream>
    using namespace std;int main(int argc, char* argv[])
    {
        unsigned short adress,port;
        cout<<"Ip adress"<<endl;
        cin>>adress;
        fflush(stdin);//stdin中でデータをクリアする
        cout<<endl;
        cout<<"Port"<<endl;
        cin>>port;
        cout<<endl;
        return 0;
    }方法2:#include "stdafx.h"
    #include <iostream>
    #include <string>
    using namespace std;int main(int argc, char* argv[])
    {
        unsigned short port;
        string address;//修正の箇所
        cout<<"Ip adress"<<endl;
        cin>>address;
        cout<<endl;
        cout<<"Port"<<endl;
        cin>>port;
        cout<<endl;
        return 0;
    }