回 帖 发 新 帖 刷新版面

主题:用scanf输入字符的时候出现了内存不能为“written”的错误


新手请教,下面这个程序我是照着书上套着写的,运行的时候输入数据后回车时出现了内存不能为“written”的错误,希望有人能帮帮改改
#include "stdio.h"
#include "conio.h"
main()
{
      int i,j;
      struct student
      {
             char Name[20];
             char Num[20];
             int Age;
             }stu[10];
            
             for(i=0;i<3;i++)
             {
                printf("请输入第%d个学生的姓名,学号,年龄\n",i+1);
                scanf("%[^\n]",stu[i].Name);
                fflush(stdin);
                scanf("%[^\n]",stu[i].Num);
                fflush(stdin);
                scanf("%[^\n]",stu[i].Age);
                fflush(stdin);
                }
      printf("*************************************\n\n");
      printf("Name           Num            Age\n\n");
      for(j=0;j<=i;j++)
      {
                       printf("%_14s|",stu[j+1].Name);
                       printf("%_14s|",stu[j+1].Num);
                       printf("%_14d\n\n",stu[j+1].Age);
                       }
      printf("*************************************");
      getch();
      }
                       
                                   
      
                 

回复列表 (共1个回复)

沙发


scanf输入age时没有加取地址符啊……觉得这样很危险……

大概看了下,lz的小错误也不止这一处,后面
[code=c]
for(j=0;j<=i;j++)
      {
                       printf("%_14s|",stu[j+1].Name);
                       printf("%_14s|",stu[j+1].Num);
                       printf("%_14d\n\n",stu[j+1].Age);
                       }[/code]
我不清楚为什么是j+1……

还有%_14d等好像不能被识别成%14d的额~~你这样只能被当做串被输出

我来回复

您尚未登录,请登录后再回复。点此登录或注册