我有一个5到4的矩阵。我正在输入20个数字。我想将这些数字条目写入文本文件,但数字未写入。这是我的代码;
int main()
{
int hw[5][4];
int i, j;
FILE *fp = fopen("input.txt", "w");
for(i=0; i<5; i++) {
for(j=0;j<4;j++) {
printf("Enter value for HW[%d][%d]:", i, j);
scanf("%d", &hw[i][j]);
fprintf(fp,"%d\n",&hw[i][j]);
if(hw[i][j]>=30)
{
printf("helloo");
}
}
}
fclose(fp);
printf("HOMEWORKS:\n");
for(i=0; i<5; i++) {
for(j=0;j<4;j++) {
printf("%d ", hw[i][j]);
if(j==3){
printf("\n");
}
}
}
return 0;
}
错误是在fprintf调用中。
您需要在fprintf调用中的hw[i][j]
之前删除“&”(如printf()函数中一样)。结果代码将是这样:
int main()
{
int hw[5][4];
int i, j;
FILE *fp = fopen("input.txt", "w");
for(i=0; i<5; i++) {
for(j=0;j<4;j++) {
printf("Enter value for HW[%d][%d]:", i, j);
scanf("%d", &hw[i][j]);
fprintf(fp,"%d\n",hw[i][j]);
if(hw[i][j]>=30)
{
printf("helloo");
}
}
}
fclose(fp);
printf("HOMEWORKS:\n");
for(i=0; i<5; i++) {
for(j=0;j<4;j++) {
printf("%d ", hw[i][j]);
if(j==3){
printf("\n");
}
}
}
return 0;
}
我还附上fprintf函数的有用指南: