




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第七章文件應用第1節標準輸入輸出1整型數據的輸入和輸出2實型數據的輸入和輸出3字符型數據的輸入和輸出1
整型數據的輸入輸出printf(格式控制,輸出參數1,...,輸出參數n);scanf(格式控制,輸入參數1,...,輸入參數n);格式控制說明
%…十進制八進制十六進制int%d%o%xlong%ld%lo%lxunsigned%u
%o%xunsignedlong%lu%lo%lx輸出整型數據示例(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輸入整型數據示例(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實型數據的輸入和輸出輸入scanf()float:%f或%e
以小數或指數形式輸入一個單精度浮點數double:%lf或%le以小數或指數形式輸入一個雙精度浮點數輸出printf()float和double使用相同的格式控制說明%f以小數形式輸出浮點數,保留6位小數%e以指數形式輸出實型數據輸出格式示例#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位,小數部分3位,小數點占1位實型數據輸入輸出示例假定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字符型數據輸入輸出scanf()和printf()%ccharch;scanf("%c",&ch);printf("%c",ch);getchar()和putchar()charch;ch=getchar();putchar(ch);輸入輸出一個字符輸入輸出字符示例#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【例】單詞加密解析。輸入一個英文單詞(由6個小寫英文字母組成),按照下列過程將該單詞加密:先將英文單詞中的小寫字母轉換為對應的大寫字母,再將該大寫字母的ASCII碼對10整除后取其余數,從而得到一個六位整數密碼。#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';/*將小寫字母轉換為大寫字母*/ 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字符運算大小寫英文字母轉換'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'數字字符和數字轉換9-0='9'-'0''9'=9+'0''8'8'8'->88->'8'程序解析-大小寫字母轉換
#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'等價嗎?常用的字符串處理函數函數原型在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)輸入參數:字符數組名,不加地址符遇回車或空格輸入結束,并自動將輸入的一串字符和‘\0’送入數組中(b)gets(str)遇回車輸入結束,自動將輸入的一串字符和‘\0’送入數組中
字符串的輸入'\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");輸出字符串后自動換行輸出參數可以是字符數組名或字符串常量,輸出遇'\0'結束字符串的輸出#include<stdio.h>intmain(){charstr[80];scanf("%s",str);printf("%s",str);printf("%s","Hello");return0;}例字符串輸入輸出函數示例#include<stdio.h>intmain(){charstr[80];gets(str);puts(str);puts("Hello");return0;}ProgrammingProgrammingHelloProgrammingisfun!
ProgrammingHelloProgrammingProgrammingHelloProgrammingisfun!
Programmingisfun!Hello字符讀寫函數fgetc和fputc函數fputc()fputc(ch,fp);把一個字符ch寫到fp所指示的磁盤文件上返回值-1(EOF):寫文件失敗ch:寫文件成功函數fgetc()ch=fgetc(fp);從fp所指示的磁盤文件上讀入一個字符到ch區分鍵盤字符輸入函數getchar()while(!feof(fp1)){ch=fgetc(fp1);if(ch!=EOF)fputc(c,fp2);}字符串方式讀寫函數fgets和fputs函數fputs()
fputs(s,fp);向指定的文本文件寫入一個字符串s:要寫入的字符串,結束符’\0’不寫入文件。函數返回值執行成功,函數返回所寫的最后一個字符否則,函數返回EOF函數fgets()fgets(s,n,fp);從文本文件中讀取字符串
s:可以是字符數組名或字符指針;n:指定讀入的字符個數;fp:文件指針函數被調用時,最多讀取n-1個字符,并將讀入的字符串存入s所指向內存地址開始的n-1個連續的內存單元中。當函數讀取的字符達到指定的個數,或接收到換行符,或接收到文件結束標志EOF時,將在讀取的字符后面自動添加一個’\0’字符;若有換行符,則將換行符保留(換行符在’\0’字符之前);若有EOF,則不保留函數返回值執行成功,返回讀取的字符串;如果失敗,則返回空指針,這時,s的內容不確定例f12-2.txt文件保存著系統用戶信息,編寫一個函數checkUserValid()用于登錄系統時校驗用戶的合法性。檢查方法是:在程序運行時輸入用戶名和密碼,然后在用戶文件中查找該用戶信息,如果用戶名和密碼在文件中找到,則表示用戶合法,返回1,否則返回0。程序運行時,輸入一個用戶名和密碼,調用checkUserValid()函數,如果返回1,則提示“Validuser!”,否則輸出“Invaliduser!”。提示:合法性檢查的規則。由于文件中的用戶名和密碼按行存取,把一行看作一個字符串s1,將輸入的用戶名和密碼加密后生成另一個字符串s2,然后通過比較s1和s2,來確定文件中是否存在用戶。源程序/*校驗用戶信息的合法性,成功返回1,否則返回0*/intcheckUserValid(structsysuser*psu){FILE*fp;charusr[30],usr1[30],pwd[10];intcheck=0;/*檢查結果變量,初始化為0*//*連接生成待校驗字符串*/strcpy(usr,psu->username);/*復制psu->username到usr1*/strcpy(pwd,psu->password);/*復制psu->password到pwd*/encrypt(pwd);/*調用例12-2的encrypt對密碼進行加密*//*連接usr、空格、pwd和\n構成新字符串usr,用于在文件中逐行檢查*/
strcat(usr,"");strcat(usr,pwd);strcat(usr,"\n");
/*打開文件"f12-2.txt"讀入*/if((fp=fopen("f12-2.txt","r"))==NULL){printf("Fileopenerror!\n");exit(0);}/*從文件讀入用戶信息數據,遍歷判斷是否存在*/while(!feof(fp)){
fgets(usr1,30,fp);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年03月四川達州市綜合應急救援支隊公開招聘1人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年03月天臺經濟開發區事務中心選聘工作人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 甲基六氫苯酐項目風險分析和評估報告
- 環型熒光燈管項目安全評估報告
- 機載檢測設備項目安全評估報告
- 浙江省嵊州市谷來鎮中學2025屆初三下-第四次月考物理試題試卷含解析
- 華北水利水電大學《日語報刊閱讀》2023-2024學年第一學期期末試卷
- 武漢紡織大學《體育教育學》2023-2024學年第二學期期末試卷
- 水處理絮凝劑TXY-1TXY-3項目安全評估報告
- 臨夏現代職業學院《環境保護與建筑節能》2023-2024學年第二學期期末試卷
- 2025年北京市東城區高三一模數學試卷(含答案)
- 2025-2030中國電子焊膏行業市場發展趨勢與前景展望戰略研究報告
- 護士的禮儀培訓
- 炎德·英才大聯考湖南師大附中2025屆高三月考試卷(七)物理試卷(含答案)
- 內鏡檢查操作流程
- 2025年湖北省八市高三(3月)聯考化學
- 2025年新音樂節明星藝人歌手演出場費報價單
- 2025年吉林司法警官職業學院單招職業技能考試題庫匯編
- 2025安徽省亳州城建發展控股集團限公司招聘81人歷年自考難、易點模擬試卷(共500題附帶答案詳解)
- 德育測試試題及答案
- 母嬰護理師、月嫂考試、產婦護理重點知識考試題(附答案)
評論
0/150
提交評論