做seo要明白網(wǎng)站內(nèi)知識搜索引擎
一、問題
????????在 printf( ) 函數(shù)和 scanf( ) 函數(shù)的格式修飾符有很多,以浮點型數(shù)據(jù)為例,有%f、%lf、 %3.0f、%.4f等。不同的修飾符表示不同的含義,那么修飾符“*”有什么含義呢?
二、解答
????????下?通過例?來證明?下這個格式符在 printf( ) 函數(shù)中的作?是什么。相應(yīng)代碼如下。
main()
{int a, b;a = 66, b = 2;printf("%*d\n", b + 2, a);
}
????????程序的運?結(jié)果如下所示。
66
????????由此結(jié)果可以發(fā)現(xiàn),整數(shù) 66 前?多出兩個空格,這就是修飾符“*”在 printt( ) 函數(shù)中起到的作?,即為指定的表達式的值給定輸出項的域?qū)?。本例?#xff0c;輸出項中給出的域?qū)挒?b+2,也就是4,因此去掉 66 占掉的兩個寬度,前?還空下兩個寬度。在此例中,相當于輸出 %4d。
????????那么在 scanf( ) 函數(shù)中的修飾符“*”與在 printf( ) 函數(shù)中的作?相同嗎?下?通過?個例?,來驗證?下在兩個函數(shù)中的作?是否相同,相應(yīng)代碼如下。
main()
{char a[80]; scanf("%*2s%s",a);printf('a=%s",a);
}
????????程序的運?結(jié)果如下所示。
welcome
a=lcome
????????由此結(jié)果可以發(fā)現(xiàn),在鍵盤上輸?“welcome”字符串,輸出的結(jié)果卻少了前?的兩個字符“we”,這就是此修飾符在 scanf( ) 函數(shù)中的作?,即“*2”表?跳過了輸?字符的前兩個字符。輸?整數(shù)?就會跳過?個字符,若改為“*4”則會跳過前?四個字符,只輸出顯示?a=ome。
三、總結(jié)
????????關(guān)于這個格式修飾符,在終端?件的讀寫上很少?到,更多的時候會?到?件的讀寫操作中。