这是使用C文件的简单程序。C:我编的错误是什么?
输入要输入文件文本的人员和ID的名称。
但工作不正常,并很乐意帮助代码。
我的函数malloc可以吗?
#include <stdio.h>
#include <stdlib.h>
void person();
void main(){
person();
}
void person(){
FILE *file;
char *str;
int i,id;
file=fopen("personid.txt","w");
if(!file)
{
puts("Error");
exit(1);
}
str=(char*)malloc(sizeof(char*));
for(i=0; i<5; i++)
{
puts("Enter name:");
gets(str);
puts("Enter you ID:");
scanf("%d",&id);
fprintf(file,"%s - %9d\n",str,id);
}
free(str);
fclose(file);
}
你能否定义“不能正常工作”?它不会编译?它运行缓慢吗?它是段故障吗?它是否打印出错误的数据?它是否是皮肤猫?除非你告诉我们,否则我们无法知晓。 – Kitsune 2012-02-07 23:39:19
你只分配足够的空间来存储'char'的指针,这对于名字来说是不够的。 – porges 2012-02-07 23:39:36
您正在分配一个字符串,其大小足以容纳3个字符。 – 2012-02-07 23:39:54