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

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

C語言的問題,fread和fgets的區(qū)別是什么?

C語言的問題,fread和fgets的區(qū)別是什么?

SSM
繁星coding 2019-02-26 11:07:58
以下程序:#include "stdio.h"#include "string.h"void main(){char xx[80][80];FILE *fp;int i=0;char *p;if((fp=fopen("IN.DAT","r"))==NULL) ;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],'\n');if(p) *p=0;i++;}for(i=0;i<10;i++)puts(xx[i]);}這個為什么輸出結(jié)果和用fread的輸出結(jié)果不一樣?用一次fgets之后為什么fp指針沒有越界,又能完整的讀出下一個字符串來?還有ip(p),p是指針,用if語句是判斷p是什么意思呢?
查看完整描述

4 回答

?
動漫人物

TA貢獻1815條經(jīng)驗 獲得超10個贊

fread讀入的內(nèi)容不包括最后的字符串終結(jié)符,而fgets則包括這個,也就是說fread讀入的內(nèi)容不是字符串,因為少一個終結(jié)符,而fgets則讀入的是一個字符串。
至于if(p)這個問題應(yīng)該很明了,雖然p是指值,但是可以讓指針指向NULL,這樣的話就可以使用if(p)來判斷指針是否指向了內(nèi)存,若沒有就跳過語句。

查看完整回答
反對 回復(fù) 2019-03-26
  • 4 回答
  • 0 關(guān)注
  • 1368 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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