C语言fgets函数和gets函数区别,导致字符串比较出现问题-创新互联
fgets函数用来读文件中的数据。
但是呢,最好不要用这个函数读出来的一行数据和你输入的字符串作比较,
因为如果是读一行,他会在\n之后再加\0;
而一般的gets不会这样,他会把\n转换成\0.
所以说,用strcmp比较的时候,总会因为后面这个小细节而发生错误。
给个例子:(自己写程序将最后的那个\n换成\0).
void datedelete(char* str4)
{FILE* fp4, * fp44;
char str[50];
fp4 = fopen("user", "r");
fp44 = fopen("temp", "w");
while (!feof(fp4))
{fgets(str, 50, fp4);
{int k;
k = strlen(str);
str[k-1] = '\0'; } //关键:手动转换。
if (strcmp(str, str4) == 0)
{ fputs("该数据已被删除", fp44);
}
else
{ fputs(str, fp44);
fputc('\n', fp44);
}
}
fclose(fp4);
fclose(fp44);
remove("user");
rename("temp", "user");
}
int main()
{char ch[50];
gets_s(ch,50);
datedelete(ch);
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文题目:C语言fgets函数和gets函数区别,导致字符串比较出现问题-创新互联
网址分享:http://azwzsj.com/article/csdjdj.html