新聞中心
C語(yǔ)言 gets()函數(shù)自動(dòng)換行,如何解釋??
原因很簡(jiǎn)單,所有的字符串操作函數(shù)在作用時(shí)都會(huì)以White Space為結(jié)束符。
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供上饒網(wǎng)站建設(shè)、上饒做網(wǎng)站、上饒網(wǎng)站設(shè)計(jì)、上饒網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、上饒企業(yè)網(wǎng)站模板建站服務(wù),10年上饒做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
White Space包括 回車(Cr Lf),空字符(NULL)等。
在程序中你用了gets(s),這個(gè)函數(shù)的意思就是接受你的輸入,直到你輸入一個(gè)White Space為止,如果你輸入了回車(表示你已經(jīng)輸入完了),就會(huì)執(zhí)行下一句的puts(s),然而你在控制臺(tái)已經(jīng)輸入了一個(gè)回車(雖然沒(méi)有輸入到s里面,但是已經(jīng)到了控制臺(tái)里),所以光標(biāo)會(huì)轉(zhuǎn)到下一行,當(dāng)執(zhí)行puts(s)后,肯定會(huì)換行輸出!明白了吧!
如果你想讓第二個(gè)test在第一個(gè)的后面,就不能用回車作為結(jié)束符,也就意味著不能用gets()函數(shù)...
你可以用scanf()函數(shù)來(lái)獲取字符,然后寫(xiě)到字符串s里面,并自定義一個(gè)結(jié)束符,比如空格,這樣當(dāng)你輸入一個(gè)空格的時(shí)候就會(huì)執(zhí)行puts(),于是便不會(huì)換行了!
效果如下:
Please enter a string:test test
光標(biāo)在此
c語(yǔ)言printf自動(dòng)回車
c語(yǔ)言printf設(shè)置自動(dòng)回車程序:
t=1;while(t){if(t%2=1)printf("%c",ch2);elseprintf("%c",ch1);t+;}t=n-2*i;while(t-)if(i%2=1)printf("%c",ch1);else.
C語(yǔ)言中怎么實(shí)現(xiàn)自動(dòng)換行
在輸出的時(shí)候,計(jì)算輸出的寬度,或者輸出的個(gè)數(shù),在達(dá)到一定限度后,增加換行符即可。
以輸出100個(gè)整型值,每輸出10個(gè),自動(dòng)換行為例,函數(shù)編寫(xiě)如下:
void?func(int?*a)
{
int?i;
for(i?=?0;?i??100;?i?++)
{
printf("%d,",a[i]);
if(i%10==9)?printf("\n");//每輸出10個(gè)換行。
}
}
C語(yǔ)言,printf自動(dòng)換行問(wèn)題:求網(wǎng)友指點(diǎn)!
printf("\n");這個(gè)語(yǔ)句輸出的是換行,printf自己不會(huì)換行的,和在哪里無(wú)關(guān)。
當(dāng)前題目:c語(yǔ)言中的自動(dòng)換行函數(shù) c語(yǔ)言換行指令
路徑分享:http://www.ef60e0e.cn/article/dogocih.html