C语言文件写入乱码
老师让我们写了一个小系统,其中包含用户管理,要记录操作日志,于是我定义了一个log函数,向文件写入了“用户名,操作,时间”,后三个写入正常,但是用户名是乱码,用户名是用户登录函数log_in的返回值,也就是说登陆成功 函数返回用户名,登录失败return 0,我在main函数用了一个字符指针us来接收log_in的返回值,然后作为参数带入log函数,我把log函数贴在下面,求各位帮忙看看,话说我在main函数加了一个printf()函数来观测us,发现是正常的 但是一些如就不正常了,老师用机房tc2.0的分步调试watch我的us变量,她说我的us之邀遇到输出语句值就改变了,她也不明白是怎么回事,我觉得不可思议,希望论坛有人帮我解释一下,先谢过了。
void log(char *u,int i,char*str,char*tm)
{
FILE *fp;
fp=fopen("c:\\TC\\log.txt","a");
if(fp==NULL)
{
fp=fopen("c:\\log.txt","w+");
printf("there is no 'log.txt',now we have creat it there\n");
}
fprintf(fp,"user '%s' have done option %d for string '%s' at %s\n",u,i,str,tm);
fclose(fp);
printf("\n(Finish!And we have recorded your action in 'c:\\tc\\log.txt')\n\n");
}
其中参数u是传入的用户名,i是操作的代号,str是用户处理的字符串,tm是系统时间