【问题标题】:getting input for structure from function从函数中获取结构的输入
【发布时间】:2014-04-09 04:16:14
【问题描述】:

我试图将结构发送到函数并在函数中用正确的值填充结构,然后在 main 中显示该值,但是当我运行它时它不是不工作。(i不能使用指针函数)。

 struct inventory{
                char name[20];
                int number;

                   };
void function(struct inventory items);
int main()
{
int x,y,z;
 struct inventory items;
function(items);
printf("\nam in main\n");
printf("\n%s\t",(items).name);
printf(" %i\t",(items).number); 
getch();    

    }
   void function(struct inventory items)
    {
printf(" enter the item name\n ");
scanf(" %s ",&(items).name );
printf(" enter the number of items\n ");
scanf("%i",&(items).number );
    }

(即:我不允许使用指针功能)如何在没有指针的情况下显示名称和数字。

【问题讨论】:

  • 我得到的错误是^^变量'items'在没有被初始化的情况下被使用。^^
  • 是不允许使用指针函数还是不允许在函数中使用指针?
  • 无效函数 (struct inventory * );
  • 应该是值而不是引用
  • 请修正你的缩进...

标签: c


【解决方案1】:
struct inventory
{
    char name[20];
    int number;
};

struct inventory function();

int main()
{
    int x,y,z;
    struct inventory items;
    items=function();
    printf("\nam in main\n");
    printf("\n%s\t",(items).name);
    printf(" %d\t",(items).number); 
    getch();
}

struct inventory function()
{
    struct inventory items;
    printf(" enter the item name\n ");
    scanf(" %s ",&items.name );
    printf(" enter the number of items\n ");
    scanf("%d",&items.number );
    return items;
}

【讨论】:

  • 我仍然遇到同样的错误,我不知道为什么
  • 对我来说似乎工作正常。你在哪一行得到错误?还有你用的是哪个编译器?
  • 我正在使用 c 编译器,错误出现在 items=function(items);错误是说变量'items'正在被使用而没有被初始化。
  • 编译器名称是“c compiler”吗?你确定吗?
  • 我正在使用 Visual Basic C++。但我通过创建 .c 文件来使用它
【解决方案2】:

您可以从函数返回结构引用,参考下面给出的代码

 struct inventory{
  char name[20];
  int number;
 };

struct inventory function(struct inventory items);

int main()
{
 int x,y,z;
 struct inventory items,ret_itm;
 ret_itm=function(items);
 printf("\nam in main\n");
 printf("\n%s\t",(ret_itm).name);
 printf(" %i\t",(ret_itm).number); 
 getch();    

}

struct inventory function(struct inventory items)
{
  printf(" enter the item name\n ");
  scanf(" %s ",&(items).name );
  printf(" enter the number of items\n ");
  scanf("%i",&(items).number );
  return items;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-23
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多