void input_information()
{
printf("\n请输入您需要录入的学生数量:");
int number;
scanf("%d",&number);
printf("\n");
char student[number][5];//姓名 性别 年龄 学号 学院
int i,j;
for(i=0;i<number;i++)
{
for(j=0;j<5;j++){
switch(j){
case 0:
printf("请输入学生姓名:\n");
break;
case 1:
printf("请输入学生性别:\n");
break;
case 2:
printf("请输入学生年龄:\n");
break;
case 3:
printf("请输入学生学号\n");
break;
case 4:
printf("请输入学生学院:\n");
break;
}
scanf("%s",&student[i][j]);
printf("\n");
}
}
input(student[number][5]);
printf("录入成功!");
}
int input(char s[100][100])
{
FILE *fp_input= fopen("D:\\c\\class.txt","w");
if(fp_input==NULL){
printf("无法打开输入文件!\n");
return 0;
}
int i1,j1;
for(i1=0;i1<100;i1++){
for(j1=0;j1<100;j1++){
fprintf(fp_input,"%s",student[i][j]);
}
printf("\n");
fprintf(fp_input,"\n");
}
fclose(fp_input);
return 1;
}
char s[x][y] 写法有问题是
回调函数的具体定义比较拗口,比较难以理解,因此比较生动的例子就是:小明到小红店里去购物,但是小红家恰好没货,因此小明留下了联系方式,等进货之后联系小明来购物
更加清晰的解释为:如果将函数指针作为参数被传递到函数中,当这个函数指针被用于调用其指向的函数时,我们就称这个函数为回调函数
回调函数的主要优势是解耦,即调用者和被调用者被分开,调用者无需了解谁是被调用者,它只需知道如果满足某条件之后,函数将被调用
修改如下,改动处见注释,供参考:
#include <stdio.h>
#define N 100 // 人数
#define M 5 //姓名 性别 年龄 学号 学院
int input(char s[N][M][32], int n)
{
FILE *fp_input = fopen("D:\\class.txt","w"); //"D:\\c\\class.txt"
if(fp_input==NULL){
printf("无法打开输入文件!\n");
return 0;
}
int i,j; // 修改
for(i = 0;i < n;i++){ //for(i1=0;i1<100;i1++) 修改
for(j = 0;j < M; j++){
fprintf(fp_input,"%s ",s[i][j]); // 修改
//fprintf(fp_input,"%s ",student[i][j]);
}
//printf("\n"); 修改
fprintf(fp_input,"\n");
}
fclose(fp_input);
return 1;
}
void input_information()
{
printf("\n请输入您需要录入的学生数量:");
int number;
scanf("%d",&number);
printf("\n");
char student[N][M][32];//修改
int i,j;
for(i = 0;i < number; i++)
{
for(j=0;j < M;j++){
switch(j){
case 0:
printf("请输入学生姓名:\n");
break;
case 1:
printf("请输入学生性别:\n");
break;
case 2:
printf("请输入学生年龄:\n");
break;
case 3:
printf("请输入学生学号\n");
break;
case 4:
printf("请输入学生学院:\n");
break;
}
scanf("%s", student[i][j]); //scanf("%s", &student[i][j]); 修改
printf("\n");
}
system("cls");
}
input(student, number);//input(student[number][5]); 修改
printf("录入成功!");
}
int main()
{
input_information();
return 0;
}