程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-C語言中的fgets問題,結果輸出多出一行“(null)”

c語言-C語言中的fgets問題,結果輸出多出一行“(null)”

編輯:編程綜合問答
C語言中的fgets問題,結果輸出多出一行“(null)”

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
char* main01()
{
//寫文件操作
char* FileName="c:/1.txt";
char ch[]="\n\r";
FILE* fp=NULL;
fp=fopen(FileName,"wb");
if(fp == NULL)
{
printf("open file error:\n");
}
fputc('c',fp); //寫一個字符
fputs("abcdefg",fp);//寫一個字符串

fwrite(ch,2,1,fp); //寫入時換行
fprintf(fp,"\n\r"); //寫入時換行
fputs("hijklmn\n",fp);
fclose(fp);
return FileName;

}

void main03(char* file_name)
{
//fgets讀文件操作
char* FileName=file_name;
char buf[100];
FILE* fp=NULL;
fp=fopen(FileName,"r");
if(fp == NULL)
{
printf("Open file error:\n");
}
while( !feof(fp))
{
printf("%s",fgets(buf,100,fp));
}
fclose(fp);
system("pause");
}

void main()
{
char* File_Name=main01();
main03(File_Name);
system("pause");
}

運行結果:
cabcdefg

hijklmn
(null)請按任意鍵繼續. . .

(null)是指什麼意思?我再文件裡沒有寫入“(null)”

最佳回答:


哦,知道了。原來是fputs會自動增加一個換行符,所以,導致文件指針讀取該空白行時會多出一個(null)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved