你好??!
創(chuàng)新新互聯(lián),憑借十余年的成都網(wǎng)站設計、成都網(wǎng)站建設、外貿(mào)網(wǎng)站建設經(jīng)驗,本著真心·誠心服務的企業(yè)理念服務于成都中小企業(yè)設計網(wǎng)站有上1000+案例。做網(wǎng)站建設,選創(chuàng)新互聯(lián)建站。
不知你向文件輸入的是什么數(shù)據(jù),輸入數(shù)據(jù)的函數(shù)很多,有fputc(s,fp);有fwrite()函數(shù)、、、、
下面是想文件輸入字符,并把字符串中的小寫字符轉(zhuǎn)換成大寫字符:
#includestdio.h
#includestdlib.h
#includectype.h
int main()
{
FILE *fp;
char filename[20];
printf("請輸入文件的名稱:");
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("cannot open file !!!\n");
exit(0);
}
printf("請輸入字符直至結(jié)束(ctrl +z):");
fflush(stdin);
char s;
while(scanf("%c",s)!=EOF)
{
if(islower(s))
s=toupper(s);//把小寫字符轉(zhuǎn)換成大寫字符
fputc(s,fp);
}
rewind(fp);//是位置指針重新返回文件的開頭,此函數(shù)沒有返回值
if((fp=fopen(filename,"r"))==NULL)//以讀的方式打開文件
{
printf("cannot open file !!!\n");
exit(0);
}
while(!feof(fp))
{
s=getc(fp);
putchar(s);
}
return 0;
}
測試:
請輸入文件的名稱:hello
請輸入字符直至結(jié)束(ctrl +z):hello world !
Z
Z
HELLO WORLD !
Press any key to continue
由于c語言標準庫函數(shù),沒有Sleep延時程序,需要自己編寫,主要通過循環(huán)判斷difftime函數(shù)返回的時間差來實現(xiàn)延時,具體代碼如下,
#include stdio.h
#include time.h
//延時程序
void sleep(int s)
{
time_t tmp1=time(NULL);
time_t tmp2=tmp1;
while(difftime(tmp2,tmp1)s)//延時s秒后結(jié)束
{
tmp2=time(NULL);
}
}
int main(int argc, char *argv[])
{
int i=1;
while(i)
{
printf ("%d : %s \n",i++,__TIME__);//打印i及程序編譯時間
sleep(1);
system("cls"); //清屏
}
return 0;
}
函數(shù)double difftime(time_t time2, time_t time1);返回兩個time_t型變量之間的時間間隔,即 計算兩個時刻之間的時間差。time1計時開始時間,time2計時結(jié)束時間,不斷更新time2直至(time2-time1)為所需要的延時時間即可。
rand()函數(shù) 返回值是產(chǎn)生一個隨機數(shù),這個返回值雖然是隨機數(shù),但是可能會發(fā)現(xiàn),每回產(chǎn)生的都一樣,比如:
#include iostream
using namespace std;
void main()
{
for(int i=0;i3;i++){
coutrand()endl;
}
}
運行程序后發(fā)現(xiàn),產(chǎn)生的隨機數(shù),雖然每次運行程序時是隨機數(shù),但是,后來再運行程序,發(fā)現(xiàn)與上幾次結(jié)果一樣。
這是因為,隨機數(shù)的起始值都一樣。
為了產(chǎn)生真正的隨機數(shù),就應該設置隨機數(shù)的起始值,這個要利用srand()函數(shù)。
將上面程序改為:
#include iostream
using namespace std;
void main()
{
cout"請輸入隨機數(shù)的起始值"endl;
int num;
cinnum;
srand(num);
for(int i=0;i3;i++){
coutrand()endl;
}
}
運行程序 就會發(fā)現(xiàn) 輸入的起始值不同,產(chǎn)生的隨機數(shù)就不同。
當然 也可以產(chǎn)生時間隨機數(shù),這個要用到c語言time.h中的程序,這個可以供你自己思考,自己解決問題,樂趣更多呢~呵呵~
啰嗦這么多 希望對您有所幫助!
使random函數(shù)刷新更快的方法:
1、利用無參構(gòu)造函數(shù),既然它是采用系統(tǒng)時間作為隨機種子,而取到的系統(tǒng)時間相同,才造成生成了重復的隨機數(shù),因此我們可以在生成一個隨機數(shù)后延時一段時間,讓它下次不取到相同的系統(tǒng)時間,這樣隨機種子也就不相同了。延時可以考慮使用Thread、Sleep(100),這里是延時0.1秒。
2、利用帶參構(gòu)造函數(shù),我們想辦法去生成盡可能不重復的隨機種子。注意到MSDN中介紹Random、NextBytes方法時,有這樣一句話“要生成適合于創(chuàng)建隨機密碼的加密安全隨機數(shù),請使用如RNGCryptoServiceProvider、GetBytes這樣的方法。
3、它包含的意義是微軟已經(jīng)有現(xiàn)成的東西生成隨機的密碼,那我們就可以拿來用用了。我們就用它來生成我們的隨機種子。
當前文章:c語言隨機函數(shù)如何刷新 c語言隨機函數(shù)如何刷新數(shù)據(jù)
文章地址:http://bm7419.com/article0/ddeppoo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、Google、靜態(tài)網(wǎng)站、云服務器、建站公司、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)