1樓:網友
你要知道你平常用的ip位址存入計算機並不是點分形式的,是uint32型別的,當你需要取得這個點分形式的ip位址,你需要呼叫inte_ntoa,他的引數是in_addr,你要知道in_addr不是乙個基本型別,它是乙個結構體,裡面有個成員,你把他的值設成那個uint32型別的ip,再呼叫inet_ntoa,算的結果就是點分形式的ip了。
求乙個c語言 十進位數字轉換成ip位址 比如688888888轉換成ip 謝謝!
2樓:網友
void ipv4_to_str(char *addr_str, unsigned int ipv4_addr)
前提是保證傳入的addr_str有足夠的空間。
3樓:知即死
#include
#include
int main()
/測試平臺為小端模式,大端模式將3210變成0123sprintf_s(str_ipaddr, sizeof(str_ipaddr), "%u.%u.%u.%u",ptr_uc[3], ptr_uc[2], ptr_uc[1], ptr_uc[0]);
printf("%s", str_ipaddr);
system("pause");
return exit_success;}
c語言中ip位址是什麼型別的變數
4樓:網友
#include
#include
using namespaces std;
#pargma comment(lib, "ws2_32")typedef struct ipstructipstruct, *pipstruct;
我估計我這個結構你不會給分的,因為用起來可能有點複雜,不過這個是最標準的由winsock提供的結構。
5樓:網友
結尾有\0的字元指標。
c語言以ip位址形式輸出
6樓:網友
ip位址是以表示。
而此程式則是將二進位轉化為十進位,即將乙個32位的數轉換為十進位輸出,先二進位數分為4個整體,每個整體有8個數,而其中的bin_dec()是將這個二進位數轉換為十進位,且利用遞迴呼叫求出。
下面是for (i = 0; i < 8; i++)轉換的乙個例子(列乙個就行了,其餘的都一樣)設輸入二進位數11111111 則bin_dec(2,7)--2*bin_dec(2,6)--2*bin_dec(2,5)--2*bin_dec(2,4)--2*bin_dec(2,3)--2*bin_dec(2,2)--2*bin_dec(2,1)--2*bin_dec(2,0)
從而逆向推出 bin_dec(2,7)=255則ip:
c語言中ip位址取整
7樓:
sscanf() 從乙個字串中讀進與指定格式相符的資料。
函式原型:int sscanf( string str, string fmt, mixed var1, mixed var2 ..
sscanf與scanf類似,都是用於輸入的,只是後者以鍵盤(stdin)為輸入源,前者以固定字串為輸入源。
其中的format可以是乙個或多個 ]type | ' ' | '\t' | '' | 非%符號}
注:1、 *亦可用於格式中, (即 %*d 和 %*s) 加了星號 (*表示跳過此資料不讀入。 (也就是不把此資料讀入引數中)
2、表示a,b,c中選一,[d],表示可以有d也可以沒有d。
3、width表示讀取寬度。
4、:引數的size,通常h表示單位元組size,i表示2位元組 size,l表示4位元組size(double例外),l64表示8位元組size。
5、type :這就很多了,就是%s,%d之類。
6、特別的:%*width] type 表示滿足該條件的被過濾掉,不會向目標引數中寫入值。
支援集合操作:
a-z] 表示匹配a到z中任意字元,貪婪性(儘可能多的匹配)
ab'] 匹配a、b、'中一員,貪婪性。
^a] 匹配非a的任意字元,貪婪性。
它強大的功能體現在對format的支援上。
例如你程式中要分離ip位址,由於ip位址欄位以「。」分隔,所以可以通過設定格式化形式分離,正如你寫的。
則192會被分離寫入x[0],168則分離寫入x[1],如下的對應,所以你所說的情況不會出現。
c語言將ip位址的二進位形式轉化為十進位的形式
8樓:網友
#include
int main()
erdn[8]=;
char a[32];
printf("請輸入32位二進位數 ;");
scanf("%s",&a);
for(i=0;i<8;i++)
for(i=8;i<16;i++
for(i=16;i<24;i++)
for(i=24;i<32;i++)
for(i=0;i<4;i++)
return 0;}
9樓:網友
#include ""
void main()
*查詢表*/
int temp;
int sum;
int i;
int m;
printf("請輸入32位二進位數字:");
for(i=0;i<32;i++)
scanf("%c",&a[i]);
scanf("%s",a);*/ /*可以按字串輸入,字串輸入是要注意末尾的\0*/
printf("輸入的二進位數字是:");
for(i=0;i<32;i++)
printf("%c",a[i]);/*顯示輸入二進位資料,也可按串輸入*/
for(i=0;i<4;i++)
b[i]=sum;
for(i=0;i<3;i++)
printf("%d",b[i]);
C語言中強制型別轉換這樣寫對嗎?int i,j double s 0 0 s s 1 0 i
可以 s s 1.0 i j 或者 s s double i j include double b2d char s int main void return 0 double b2d char s return n 肯定可以啊!因為1.0是實數,i和j是整數。實數和整數一起運算的時候,整數要先轉化...
c語言中函式指標的強制型別轉換有什麼作用
如果你把sub函式bai改為int sub int a,int b,int c,int d,int e,int f,int g,int h 你就會發現後面du那幾個引數 就zhi變得不dao正常,道理很簡單,版引數push過少,函權數傳遞引數是把引數push進堆疊,在函式題裡面再pop出來,至於什麼...
c語言中的func型別是什麼,在C語言中,FUNC是什麼意思?
在c語言中沒有func型別,func一般是自定義函式的函式名 函式 的英語翻譯回 function 如以下 答 include int func int a 定義函式,函式名為funcvoid main 在這段 定義了函式func 其作用是返回a 1的值。沒有這個型別 這是一般書本里面用來給自定義函...