亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

就只能反寫一半(單數返回一半加一)的字符呢?

就只能反寫一半(單數返回一半加一)的字符呢?

C
慕斯709654 2023-03-06 17:13:29
/*以下程序的功能是:實現從鍵盤輸入字符,存入文件d:\\fseekin.txt,并將其反寫到d:\\fseekout.txt*/#include<stdio.h>#include<string.h>int main(int argc,char * argv[]){FILE * fpin,* fpout;int i=0;int j=0;char ch;if((fpin=fopen("d:\\fseekin.txt","w+"))==NULL)//*注意!不能寫成"w",因為后面還要讀!{printf("打開文件\"d:\\fseekin.txt\"時出錯!\n");getchar();return 0;}if((fpout=fopen("d:\\fseekout.txt","w+"))==NULL){printf("打開文件\"d:\\fseekout.txt\"時出錯!\n");getchar();return 0;}printf("請輸入一組字符串并以#號結束:\n");//*下面while語句的功能實現從顯示器接受字符,輸入到文件d:\\fseekin.txt中while((ch=fgetc(stdin))!='#'){fprintf(fpin,"%c",ch);i++; //*記住輸入文件的字符數}  fprintf(stdout,"剛才輸入的%d個字符使\"d:\\fseekin.txt\"的文件指針向前移動了%d個字節\n",i,ftell(fpin));j=ftell(fpin);printf("fpin中指針偏移%d個字節\n",j);i=1;/*重新初始化i,為下面的循環做準備//*下面while 語句的功能實現將d:\\fseekin.txt的所有字符反寫到d:\\fseekout.txtwhile(ftell(fpin)!=0&&ftell(fpin)!=-1&&i<=j)//* 為什么不能用for(i=1;i<=j;i++)?好 像用了之后就只能倒置一半的字符!{  fseek(fpin,-i,2);fputc(fgetc(fpin),fpout);i++;}//*下面的語句測試并關閉打開的文件if(fclose(fpin)||fclose(fpout)){printf("關閉文件\"d:\\fseekin.txt\"或\"d:\\fseekout.txt\"時出錯!\n");getchar();return 0;}printf("關閉文件成功!\n");getchar();return 0;}我的問題是為什么將第二個while語句即while(ftell(fpin)!=0&&ftell(fpin)!=-1&&i<=j){  fseek(fpin,-i,2);fputc(fgetc(fpin),fpout);i++;}該為:for(i=1;i<=j;i++){  fseek(fpin,-i,2);fputc(fgetc(fpin),fpout);i++;}
查看完整描述

1 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

for(i=1;i<=j;i++)
{  
fseek(fpin,-i,2);
fputc(fgetc(fpin),fpout);
i++;
}
每次i自加兩次,當然提前了,而且是隔位的,循環體內i++刪了


查看完整回答
反對 回復 2023-03-08
  • 1 回答
  • 0 關注
  • 115 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號