十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問題一站解決
你這個(gè)題目說(shuō)的有點(diǎn)不清楚。
潘集網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)從2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
1.gets()
【1】函數(shù):gets(字符指針)
【2】頭文件:stdio.h(c中),c++不需包含此頭文件
【3】原型:char *gets( char *buffer );
【4】功能:從stdin流中讀取字符串,直至接受到換行符或EOF時(shí)停止,并將讀取的結(jié)果存放在buffer指針?biāo)赶虻淖址麛?shù)組中。換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為null值,并由此來(lái)結(jié)束字符串。
【5】注意:本函數(shù)可以無(wú)限讀取,不會(huì)判斷上限,所以程序員應(yīng)該確保buffer的空間足夠大,以便在執(zhí)行讀操作時(shí)不發(fā)生溢出。如果溢出,多出來(lái)的字符將被寫入到緩沖區(qū)后面的內(nèi)存位置,這將破壞一個(gè)或多個(gè)不相關(guān)變量的值。這個(gè)事實(shí)導(dǎo)致gets函數(shù)只適用于玩具程序。
【6】示例:
#includeiostream
using namespace std;
int main()
{
char str[100];
gets(str);
coutstr;
return 0;
}
gets()函數(shù)用來(lái)從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取字符串直到換行符結(jié)束,但換行符會(huì)被丟棄,然后在末尾添加'\0'字符。其調(diào)用格式為:
gets(s);
其中s為字符串變量(字符串?dāng)?shù)組名或字符串指針)。
gets(s)函數(shù)與scanf("%s:",s)/* scanf("%s",s) */相似,但不完全相同,使用scanf("%s",s);函數(shù)輸入字符串時(shí)存在一個(gè)問題,就是如果輸入了空格會(huì)認(rèn)為字符串結(jié)束,空格后的字符將作為下一個(gè)輸入項(xiàng)處理,但gets()函數(shù)將接收輸入的整個(gè)字符串直到遇到換行為止。
說(shuō)明:
gets(s);函數(shù)中的變量s為一字符串。如果為單個(gè)字符,編譯連接不會(huì)有錯(cuò)誤,但運(yùn)行后會(huì)出現(xiàn)”Null pointer asignment"的錯(cuò)誤。
百科對(duì)gets的說(shuō)明:
Scanf:
scanf(格式控制,地址表列)
int scanf(char *format[,argument,...]);
“格式控制”的含義同printf函數(shù);“地址表列”是由若干個(gè)地址組成的表列,可以是變量的地址,或字符串的首地址。
scanf()函數(shù)返回成功賦值的數(shù)據(jù)項(xiàng)數(shù),讀到文件末尾出錯(cuò)時(shí)則返回EOF。
例:使用scanf函數(shù)輸入數(shù)據(jù)。
在visual c++ 6.0上的編寫方式。
#includestdio.h
void main()
{
int a,b,c;
printf("please input a,b,c");
scanf("%d %d %d",a,b,c); // 這里記得在輸入時(shí)也得按這個(gè)格式輸入,所以這里應(yīng)該這樣輸入:1 2 3然后按回車,不然就得不到你想要的結(jié)果
printf("a=%d,b=%d,c=%d",a,b,c);
}
百科對(duì)scanf的說(shuō)明:
fread()函數(shù)是用來(lái)讀取二進(jìn)制文件的,就是說(shuō)為建立存儲(chǔ)的東西,就像內(nèi)從內(nèi)存里把那段數(shù)據(jù)塊直接搬過(guò)來(lái)一樣,而不是用記事本打開就能看到里面的內(nèi)容,只是一堆亂碼。你的文本文件,可以用fscanf()函數(shù)來(lái)讀取。
把
fread(F[n],sizeof(double),1024,fp);
改為
fscanf(fp,"%lf",F[n]);
即可
注意這點(diǎn),gets()函數(shù)會(huì)讀取一行字符,直到遇到換行符'\n為止,并且這個(gè)換行符不會(huì)讀取到數(shù)組中。
scanf("%s%s",a1,a2);
這一行把a(bǔ)a和bb讀取并分別保存到a1和a2數(shù)組中,但是會(huì)把回車符留在緩沖區(qū)中。
gets(a3);gets(a4);
這里的gets(a3)會(huì)讀取這個(gè)回車符,但是不會(huì)把回車符保存到a3數(shù)組,所以a3數(shù)組內(nèi)容不會(huì)改變,接下來(lái)的gets(a4)將以回車結(jié)尾的cc
dd讀取并保存到a4中
puts(a1);puts(a2);
分別在單獨(dú)的行中輸出a1和a2字符串。
puts(a3);puts(a4);
分別在單獨(dú)的行中輸出a3和a4字符串。由于a3沒有賦值,所以它依然保持在定義時(shí)的隨機(jī)值。