第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

這個(gè)該咋滴辦???誰(shuí)能幫忙解釋下

這個(gè)該咋滴辦?。空l(shuí)能幫忙解釋下

C
撒科打諢 2023-03-15 16:12:44
#include <stdio.h>void main(){FILE * fp3;char buffer[64];if((fp3=fopen("file4.txt","a"))==NULL){printf("can't open file \n");exit(1);}while(strlen(fgets(buffer,64,stdin))>0){fputs(buffer,fp3);fputs("\n",fp3);}fclose(fp3);}這是教材上的一個(gè)程序,目的是“從鍵盤輸入若干行字符,把他們添加到磁盤文件file4.txt中”,但我執(zhí)行了好多次,不但沒(méi)有添加進(jìn)去,反而程序無(wú)法正常結(jié)束,不管怎么按回車都沒(méi)能退出程序。而教材解釋說(shuō) while(strlen(fgets(buffer,64,stdin))>0)的功能是“從鍵盤讀入一行字符,并測(cè)試讀入的字符串長(zhǎng)度是否為0”,最后解釋“程序通過(guò)檢測(cè)輸入的字符串長(zhǎng)度是否為0控制是否結(jié)束循環(huán),因而輸入完所有的字符串之后,在輸入新一行開(kāi)始就輸入一個(gè)回車鍵,便可以終止程序”,貌似很有道理,可執(zhí)行起來(lái)怎么就沒(méi)完沒(méi)了了呢?把程序改成下面的形式倒是可以結(jié)束了,可是輸出來(lái)卻不如人意。在vc中產(chǎn)生了一連串火星文,在TC中只能輸出第一個(gè)字符,然后換行。#include<stdio.h>#include<string.h>int main(){FILE * fp;char s[64];char s2[64];int i;int j=0;if((fp=fopen("f:\\cfile2.txt","w"))==NULL){printf("cfile.txt canot be open ! \n");getchar();return 0;}printf("請(qǐng)輸入一組字符的字符串并回車,按esc鍵退出:\n");while(strlen(fgets(s,64,stdin))>0){for(i=0;i<64;i++){if(s[i]=='\0'){  while(j<i-1)s2[j++]=s[j++];fputs(s2,fp);fputs("\n",fp);if(fclose(fp)!=0){printf("f:\\cfile.txt cannot be closed !\n");}elseprintf("cfile.txt was now closed !\n");getchar();return 0;}}fputs(s,fp);fputs("\n",fp);}if(fclose(fp)!=0){printf("f:\\cfile.txt cannot be closed !\n");}elseprintf("cfile.txt was now closed !\n");getchar();return 0;}
查看完整描述

3 回答

?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊

while(strlen(fgets(buffer,64,stdin))>2)
{
fputs(buffer,fp3);
}
fclose(fp3);
}
別忘了 回車,換行

至于你的那程序,多的沒(méi)認(rèn)真看,不過(guò)j=0放循環(huán)體內(nèi)吧

查看完整回答
反對(duì) 回復(fù) 2023-03-18
?
白板的微信

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊

string[strlen(string)-1]='\0'
將那個(gè)回車的字符所在的位置改成串結(jié)束符就ok了

查看完整回答
反對(duì) 回復(fù) 2023-03-18
?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊

#include <stdio.h>
void main()
{
FILE * fp3;
char buffer[64];
if((fp3=fopen("file4.txt","a"))==NULL)
{
printf("can't open file \n");
exit(1);
}
while(strlen(fgets(buffer,64,stdin))>0)
{
fputs(buffer,fp3);
fputs("\n",fp3);
}
fclose(fp3);
}
你的函數(shù)調(diào)用fgets并沒(méi)有錯(cuò)啊
把while改成if就可以了,只需要將buffer的值寫(xiě)到文件中一次就可以了,沒(méi)有必要用循環(huán),如果用循環(huán)的話,條件一直成立,一直向其中寫(xiě)入數(shù)據(jù),循環(huán)無(wú)法結(jié)束...

查看完整回答
反對(duì) 回復(fù) 2023-03-18
  • 3 回答
  • 0 關(guān)注
  • 121 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)