我正在尝试使用动态内存分配创建一个结构,在运行时获取输入,最后尝试打印出内容。
这是代码:
UITableViewCells
我们这里有一个岛结构,一个显示结构内容的显示方法,然后是一个创建函数,它使用动态内存分配为结构创建空间。我在运行时传递岛的名称并创建结构
这是我得到的输出,它在我运行程序时起作用:
contentView
注意:testing是程序的名称。
问题是我试图以这种方式打印输出,而不是打印出来,为什么会这样?
#include<stdio.h>
#include<stdlib.h>
typedef struct island{//struct template
char* name;
char* opens;
char* closes;
struct island *next;
}island;
void display(island *start)//start display
{
island *i;
i=start;
while(i!=NULL)
{
printf("Name:%sOpen:%s-%s\n",i->name,i->opens,i->closes);
i=i->next;
}
}//end display
island *create(char *name)//start create
{
island *i=malloc(sizeof(island));
i->name=strdup(name);
i->name=name;
i->opens="9:00AM";
i->closes="5:00PM";
i->next=NULL;
return i;
}//end create
int main()//start main
{
char name[80];
fgets(name,80,stdin);
island *i=create(name);
display(i);
return 0;
}//end-main
使用的printf()语句是:
C:\Users\Gova\Desktop\ctest>testing
Ami
Name:Ami
Open:9:00AM-5:00PM
为什么程序在我没有在printf()语句中指定任何内容时添加换行符?