版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第七章文件應(yīng)用第1節(jié)標(biāo)準(zhǔn)輸入輸出1整型數(shù)據(jù)的輸入和輸出2實(shí)型數(shù)據(jù)的輸入和輸出3字符型數(shù)據(jù)的輸入和輸出1
整型數(shù)據(jù)的輸入輸出printf(格式控制,輸出參數(shù)1,...,輸出參數(shù)n);scanf(格式控制,輸入?yún)?shù)1,...,輸入?yún)?shù)n);格式控制說(shuō)明
%…十進(jìn)制八進(jìn)制十六進(jìn)制int%d%o%xlong%ld%lo%lxunsigned%u
%o%xunsignedlong%lu%lo%lx輸出整型數(shù)據(jù)示例(1)#include<stdio.h>intmain(void){printf("%d,%o,%x\n",10,10,10);printf("%d,%d,%d\n",10,010,0x10);printf("%d,%x\n",012,012);return0;}
0……0101010,12,a10,8,1610,a輸入整型數(shù)據(jù)示例(2)#include<stdio.h>intmain(void){inta,b;
printf("inputa,b:");scanf("%o%d",&a,&b);printf("%d%5d\n",a,b); /*%5d指定變量b的輸出寬度為5*/printf("%x,%d\n",a,b);return0;}
inputa,b:17171517f,17"%x%d"2實(shí)型數(shù)據(jù)的輸入和輸出輸入scanf()float:%f或%e
以小數(shù)或指數(shù)形式輸入一個(gè)單精度浮點(diǎn)數(shù)double:%lf或%le以小數(shù)或指數(shù)形式輸入一個(gè)雙精度浮點(diǎn)數(shù)輸出printf()float和double使用相同的格式控制說(shuō)明%f以小數(shù)形式輸出浮點(diǎn)數(shù),保留6位小數(shù)%e以指數(shù)形式輸出實(shí)型數(shù)據(jù)輸出格式示例#include<stdio.h>intmain(void) {doubled=3.1415926;printf("%f,%e\n",d,d);printf("%5.3f,%5.2f,%.2f\n",d,d,d);return0;}
3.141593,3.14159e+003.142,3.14,3.14一共5位,小數(shù)部分3位,小數(shù)點(diǎn)占1位實(shí)型數(shù)據(jù)輸入輸出示例假定float的精度為7位,double的精度為16位
#include<stdio.h>intmain(void)
{floatf;doubled;printf("inputf,d:");scanf("%f%lf",&f,&d);printf("f=%f\nd=%f\n",f,d);d=1234567890123.12;printf("d=%f\n",d);return0;}inputf,d:1234567890123.1234561234567890123.123456f=1234567954432.000000d=1234567890123.123540d=1234567890123.1201203字符型數(shù)據(jù)輸入輸出scanf()和printf()%ccharch;scanf("%c",&ch);printf("%c",ch);getchar()和putchar()charch;ch=getchar();putchar(ch);輸入輸出一個(gè)字符輸入輸出字符示例#include<stdio.h>intmain(void){charch1,ch2;ch1=getchar();ch2=getchar();putchar(ch1);putchar('#');putchar(ch2);return0;}AbA#b輸入輸出字符示例#include<stdio.h>intmain(void){charch1,ch2,ch3;scanf("%c%c%c",&ch1,&ch2,&ch3);printf("%c%c%c%c%c",ch1,'#',ch2,'#',ch3);return0;}AbCA#b#CAbCA##b【例】單詞加密解析。輸入一個(gè)英文單詞(由6個(gè)小寫(xiě)英文字母組成),按照下列過(guò)程將該單詞加密:先將英文單詞中的小寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)的大寫(xiě)字母,再將該大寫(xiě)字母的ASCII碼對(duì)10整除后取其余數(shù),從而得到一個(gè)六位整數(shù)密碼。#include<stdio.h>intmain(void){ inti; charch_lower,ch_upper; for(i=1;i<=6;i++) { scanf("%c",&ch_lower); if(ch_lower>='a'&&ch_lower<='z') ch_upper=ch_lower-'a'+'A';/*將小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母*/ printf("%c->%c->%d\n",ch_lower,ch_upper,ch_upper%10); }return0;}fridayf->F->0r->R->2i->I->3d->D->8a->A->5y->Y->9字符運(yùn)算大小寫(xiě)英文字母轉(zhuǎn)換'b'-'a'='B'-'A'……'z'-'a'='Z'-'A''m'
'M''a'->'A''A'->'a''m'-'a'+'A'='M''M'-'A'+'a'='m''8'-'0'=88+'0'='8'數(shù)字字符和數(shù)字轉(zhuǎn)換9-0='9'-'0''9'=9+'0''8'8'8'->88->'8'程序解析-大小寫(xiě)字母轉(zhuǎn)換
#include<stdio.h>intmain(void){
charch;
printf("inputcharacters:");
ch=getchar();
while(ch!='\n'){if(ch>='A'&&ch<='Z')
ch=ch-'A'+'a';
elseif((ch>='a'&&ch<='z')
ch=ch-'a'+'A';putchar(ch);
ch=getchar();}rerurn0;}input10characters:Reold123?rEOLD123?
while((ch=getchar())!='\n')(ch=getchar())!='\n'ch=getchar()!='\n'等價(jià)嗎?常用的字符串處理函數(shù)函數(shù)原型在stdio.h或string.h中給出(1)字符串的輸入和輸出輸入字符串:scanf()或gets()輸出字符串:printf()或puts()
stdio.hcharstr[80];i=0;while((str[i]=getchar())!='\n')i++;str[i]='\0';(a)scanf("%s",str)輸入?yún)?shù):字符數(shù)組名,不加地址符遇回車(chē)或空格輸入結(jié)束,并自動(dòng)將輸入的一串字符和‘\0’送入數(shù)組中(b)gets(str)遇回車(chē)輸入結(jié)束,自動(dòng)將輸入的一串字符和‘\0’送入數(shù)組中
字符串的輸入'\n''''\t'charstr[80];for(i=0;str[i]!=‘\0’;i++)putchar(str[i]);(c)printf("%s",str)printf("%s","hello");(d)puts(str)puts("hello");輸出字符串后自動(dòng)換行輸出參數(shù)可以是字符數(shù)組名或字符串常量,輸出遇'\0'結(jié)束字符串的輸出#include<stdio.h>intmain(){charstr[80];scanf("%s",str);printf("%s",str);printf("%s","Hello");return0;}例字符串輸入輸出函數(shù)示例#include<stdio.h>intmain(){charstr[80];gets(str);puts(str);puts("Hello");return0;}ProgrammingProgrammingHelloProgrammingisfun!
ProgrammingHelloProgrammingProgrammingHelloProgrammingisfun!
Programmingisfun!Hello字符讀寫(xiě)函數(shù)fgetc和fputc函數(shù)fputc()fputc(ch,fp);把一個(gè)字符ch寫(xiě)到fp所指示的磁盤(pán)文件上返回值-1(EOF):寫(xiě)文件失敗ch:寫(xiě)文件成功函數(shù)fgetc()ch=fgetc(fp);從fp所指示的磁盤(pán)文件上讀入一個(gè)字符到ch區(qū)分鍵盤(pán)字符輸入函數(shù)getchar()while(!feof(fp1)){ch=fgetc(fp1);if(ch!=EOF)fputc(c,fp2);}字符串方式讀寫(xiě)函數(shù)fgets和fputs函數(shù)fputs()
fputs(s,fp);向指定的文本文件寫(xiě)入一個(gè)字符串s:要寫(xiě)入的字符串,結(jié)束符’\0’不寫(xiě)入文件。函數(shù)返回值執(zhí)行成功,函數(shù)返回所寫(xiě)的最后一個(gè)字符否則,函數(shù)返回EOF函數(shù)fgets()fgets(s,n,fp);從文本文件中讀取字符串
s:可以是字符數(shù)組名或字符指針;n:指定讀入的字符個(gè)數(shù);fp:文件指針函數(shù)被調(diào)用時(shí),最多讀取n-1個(gè)字符,并將讀入的字符串存入s所指向內(nèi)存地址開(kāi)始的n-1個(gè)連續(xù)的內(nèi)存單元中。當(dāng)函數(shù)讀取的字符達(dá)到指定的個(gè)數(shù),或接收到換行符,或接收到文件結(jié)束標(biāo)志EOF時(shí),將在讀取的字符后面自動(dòng)添加一個(gè)’\0’字符;若有換行符,則將換行符保留(換行符在’\0’字符之前);若有EOF,則不保留函數(shù)返回值執(zhí)行成功,返回讀取的字符串;如果失敗,則返回空指針,這時(shí),s的內(nèi)容不確定例f12-2.txt文件保存著系統(tǒng)用戶(hù)信息,編寫(xiě)一個(gè)函數(shù)checkUserValid()用于登錄系統(tǒng)時(shí)校驗(yàn)用戶(hù)的合法性。檢查方法是:在程序運(yùn)行時(shí)輸入用戶(hù)名和密碼,然后在用戶(hù)文件中查找該用戶(hù)信息,如果用戶(hù)名和密碼在文件中找到,則表示用戶(hù)合法,返回1,否則返回0。程序運(yùn)行時(shí),輸入一個(gè)用戶(hù)名和密碼,調(diào)用checkUserValid()函數(shù),如果返回1,則提示“Validuser!”,否則輸出“Invaliduser!”。提示:合法性檢查的規(guī)則。由于文件中的用戶(hù)名和密碼按行存取,把一行看作一個(gè)字符串s1,將輸入的用戶(hù)名和密碼加密后生成另一個(gè)字符串s2,然后通過(guò)比較s1和s2,來(lái)確定文件中是否存在用戶(hù)。源程序/*校驗(yàn)用戶(hù)信息的合法性,成功返回1,否則返回0*/intcheckUserValid(structsysuser*psu){FILE*fp;charusr[30],usr1[30],pwd[10];intcheck=0;/*檢查結(jié)果變量,初始化為0*//*連接生成待校驗(yàn)字符串*/strcpy(usr,psu->username);/*復(fù)制psu->username到usr1*/strcpy(pwd,psu->password);/*復(fù)制psu->password到pwd*/encrypt(pwd);/*調(diào)用例12-2的encrypt對(duì)密碼進(jìn)行加密*//*連接usr、空格、pwd和\n構(gòu)成新字符串usr,用于在文件中逐行檢查*/
strcat(usr,"");strcat(usr,pwd);strcat(usr,"\n");
/*打開(kāi)文件"f12-2.txt"讀入*/if((fp=fopen("f12-2.txt","r"))==NULL){printf("Fileopenerror!\n");exit(0);}/*從文件讀入用戶(hù)信息數(shù)據(jù),遍歷判斷是否存在*/while(!feof(fp)){
fgets(usr1,30,fp);
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 馬鞍山職業(yè)技術(shù)學(xué)院《藝術(shù)形態(tài)采集課程設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 呂梁學(xué)院《成本會(huì)計(jì)模擬》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年臨時(shí)活動(dòng)場(chǎng)地租賃合同范本
- 2025年南寧貨車(chē)資格證試題及答案
- 2024年個(gè)人擔(dān)保書(shū)填寫(xiě)說(shuō)明3篇
- 2024年上門(mén)女婿財(cái)產(chǎn)分割及婚姻關(guān)系解除協(xié)議書(shū)3篇
- 洛陽(yáng)文化旅游職業(yè)學(xué)院《池塘養(yǎng)殖學(xué)A》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年水利工程勞務(wù)分包協(xié)議樣本
- 單位人事管理制度精彩選集
- 辦公物業(yè)招投標(biāo)攻略流程掌握
- 線(xiàn)路工程灌注樁施工作業(yè)指導(dǎo)書(shū)施工方案
- 重力壩的分縫與止水
- 三重管高壓旋噴樁施工工藝規(guī)程與施工方案
- 云南白藥公司近三年財(cái)報(bào)分析
- 衛(wèi)浴產(chǎn)品世界各國(guó)認(rèn)證介紹
- 個(gè)體診所藥品清單
- 國(guó)網(wǎng)基建國(guó)家電網(wǎng)公司輸變電工程結(jié)算管理辦法
- 深度學(xué)習(xí)數(shù)學(xué)案例(課堂PPT)
- 中國(guó)地圖含省份信息可編輯矢量圖
- 臥式鉆床液壓系統(tǒng)設(shè)計(jì)課件
- 水庫(kù)維修養(yǎng)護(hù)工程施工合同協(xié)議書(shū)范本
評(píng)論
0/150
提交評(píng)論