QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1054|回复: 8

求教结构体数组成员的付值问题

[复制链接]
发表于 2005-10-31 22:08:15 | 显示全部楼层 |阅读模式
请教!!!
  定义一个结构体,struct  name
                            {
                                  int  number;
                                  char  name[20];
                             } one;
用调用函数的方法给结构体的元素付值,用指向结构体的指针(ptr = &one)作为函数的参数,请问用scanf给name数组付值,和用gets给name数组付值有什么不同.

望赐教!!
谢谢!
发表于 2005-10-31 22:52:45 | 显示全部楼层

不明白你在说什么

说清楚点了
回复

使用道具 举报

 楼主| 发表于 2005-11-1 13:29:13 | 显示全部楼层
head.h:

#define SIZE 3
#define NAME 20

struct student
  {
    int  num;
    char  name[NAME];
    float  score[SIZE];
  };


main.c:

#include"head.h"
#include"input.c"


int  main()
{
  void  input(struct student  *);
  void  output(struct student  *);
  
  struct student  stu[SIZE];
  struct student  *ptr;
  
  ptr = stu;
  
  input(ptr);
  
  output(ptr);
}


input.c:

#include<stdio.h>


void  input(struct student  *ptr)
{
  int  i, j;
  
  for (i = 0; i < SIZE; i++)
    {
      j = 0;
            
      printf("Enter the member of the stu.\n");
      
      printf("No: ");
      scanf("%d", &ptr->num);
      
      printf("Name: ");
      gets(ptr->name);  //就是这里啊!!!!用gets()函数后,没有执行输入,就直接运行到scanf()去了,不
                                   //过用scanf()可以输入,可是不能有空格啊,不知道什么原因.望赐教!!!!谢谢!!
      printf("Course 1: ");
      scanf("%f", &ptr->score[j]);
      
      printf("Course 2: ");
      scanf("%f", &ptr->score[++j]);
      
      printf("Courese 3: ");
      scanf("%f", &ptr->score[++j]);
      //printf("\n");
      
      ptr++;
    }
}
回复

使用道具 举报

发表于 2005-11-1 15:00:14 | 显示全部楼层
scanf("%s %s %s %s",buf1,buf2,buf3,buf4);
可以有空格
gets是读缓冲区的,它不会等待输入。
回复

使用道具 举报

 楼主| 发表于 2005-11-1 19:30:39 | 显示全部楼层
小弟不才,希望大侠能说详细一点.
我查了很多资料,都只简单的一笔带过,根本没有把gets()函数讲清楚啊!
希望高手能写一个gets()函数,让我这个菜鸟学习.
非常感谢!!!
回复

使用道具 举报

发表于 2005-11-1 19:52:45 | 显示全部楼层
man gets
回复

使用道具 举报

 楼主| 发表于 2005-11-1 20:45:32 | 显示全部楼层
Thanks
回复

使用道具 举报

发表于 2005-11-1 22:01:26 | 显示全部楼层
my god, man gets
这样都行...
回复

使用道具 举报

发表于 2005-11-1 22:43:43 | 显示全部楼层
怎么不行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 04:20 , Processed in 0.047172 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表