读书人

新人:关于scan()函数、结构体、double

发布时间: 2013-04-20 19:43:01 作者: rapoo

新人求助:关于scan()函数、结构体、double类型的问题,谢过各位!


#include <stdio.h>
#include <stdlib.h>

struct circuit
{
char yjtype;
intnumber;
int startnode;
intendnode;
int control;
double argument;
};

void flush()
{
char temp;
while ((temp = getchar()) != '\n' && temp != EOF) ;
}

void main()
{
int i, b;
struct circuit *Node;
printf("请输入元件个数:\n");
scanf(" %d",&b);
Node = (struct circuit*)calloc(b , sizeof(struct circuit));
printf("请输入%d个元件参数:\n",b);
printf("***************************************************\n");
printf("格式为:元件类型,开始结点,终止结点,控制支路,元件参数\n");
printf("***************************************************\n");
for(i = 0; i < b; i++)
{
printf("di %d ge jiedian:\n", i+1);
flush();
scanf(" %c , %d , %d , %d , %d , %f",
Node[i].yjtype, &Node[i].number, &Node[i].startnode,
&Node[i].endnode, &Node[i].control, &Node[i].argument);
printf("%c,%d,%d,%d,%d,%f\n",
Node[i].yjtype, Node[i].number, Node[i].startnode,
Node[i].endnode, Node[i].control,Node[i].argument);
}
free(Node);
flush();
getchar();
}
C struct
[解决办法]
double的话为什么不用%lf ?
[解决办法]
我查了一下,C中scanf里double确实是用%lf;%g用在printf。有些疏忽了。

读书人网 >C语言

热点推荐