c语言文件读问题fgets() 在线等!!!!!!!!!!!!!!

void Chat_Info_Read(char *U_Ip,char **Chat_Dia_Text)
{
FILE *file_id;
int S_F_length1=strlen(file_head);//file head of length
int S_F_length2=strlen(U_Ip);//U_Ip of length
int S_Length=S_F_length1+S_F_length2;//file’name of size;
char *file_name; //file name
int i=0;
file_name=(char *)malloc(S_Length);
for(;i<S_F_length1;++i)
{
file_name[i]=file_head[i];
}
for(i=S_F_length1;i<S_F_length1+S_F_length2;++i)
{
file_name[i]=U_Ip[i-S_F_length1];
}
file_name[S_Length]='\0';
file_id=fopen(file_name,"r");
if(file_id==NULL)
{
printf("%s open or create failed!\n");
exit(1);
}
while((fgets(*Chat_Dia_Text,255,file_id))!=NULL)//为什么在这儿的时候就通不过了?
{
printf("%s",*Chat_Dia_Text);
}

fclose(file_id);
}

你确定你的*Chat_Dia_Text有分配空间吗。
你函数体外传参应该是有一个char指针如char *p分配了空间再以&p的形式传进你的函数体,或者就在你的函数体内部malloc
如:
#include<iostream>
using namespace std;

void Func(char **p)
{
fgets(*p,100,stdin);
}

int main()
{
char* str = NULL;
str = (char*)malloc(100 * sizeof(char));
Func(&str);
system("pause");
return 0;
}追问

我已经做出来了 函数没有错误 是我在传参的时候没有传好 不过还是谢谢你

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜