ID.text文件中每一行为一个18位的身份证号
以下是代码(可优化):
int main() {
int i,j,k,Z,isNum,M=1,addsum=0;
int weight[] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
char ZtoM[] = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
char ID[19];//要操作的身份证数组
char (*p)[19];//p指向X行的身份证,数据指针
p=(char (*)[19])malloc(1*19*sizeof(char));//动态分配内存1行19列(18位身份证号+‘|0’)
FILE *fpRead=fopen("ID.txt","r"); //读取文件,其中"r"是表示 读
k=0;//读取文件数-1
while(!feof(fpRead))
{
//当行数超过1时候,内存不够动态添加内存
if(k>0){
p=(char (*)[19])realloc(p,(k+1)*19*sizeof(char));//增加1行
}
fscanf(fpRead,&