Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 结构未存储值,扫描失败_C_Struct_Scanf - Fatal编程技术网

C 结构未存储值,扫描失败

C 结构未存储值,扫描失败,c,struct,scanf,C,Struct,Scanf,我试图用一些输入运行下面的代码,当程序结束时,它显示scanf失败,并且我的结构除了零之外没有保存任何内容。怎么了 代码: 输出: u: 0 v: 0 w: 0 u: 0 v: 0 w: 0 u: 0 v: 0 w: 0 u: 0 v: 0 w: 0 u: 0 v: 0 w: 0 u: 0 v: 0 w: 0 u: 0 v: 0 w: 0 u: 0 v: 0 w: 0 u: 0 v: 0 w: 0 u: 0 v: 0 w: 0 u: 0 v: 0 w: 0 u: 0 v: 0 w: 0 u: 0

我试图用一些输入运行下面的代码,当程序结束时,它显示
scanf
失败,并且我的结构除了零之外没有保存任何内容。怎么了

代码:

输出:

u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
编辑:我看到我的scanf条件是错误的,我已经更改了它,但我仍然不明白仅仅存储0(代码和输出已编辑)

scanf(“%d%d\n%d”,&n,&c,&sede)将在成功扫描时返回3,当然3!=1
scanf(“%d%d%d”、&vertex->u、&vertex->v、&vertex->w)的情况也一样。
顺序错误的代码:打印指针,然后使用
顶点=顶点->下一步

    // Add
    printf("u: %d v: %d w: %d\n", vertex->u, vertex->v, vertex->w);

    vertex->next = malloc(sizeof(struct info));
    vertex = vertex->next;
    // printf("u: %d v: %d w: %d\n", vertex->u, vertex->v, vertex->w);

if(scanf(“%d%d\n%d”、&n、&c和&sede)!=1)
->
if(scanf(“%d%d%d”、&n、&c和&sede)!=3)
?请阅读更多信息,尤其是关于它返回的内容。@chux我编辑了这个问题,也许我应该再次输入错误,对此表示抱歉。scanf返回错误的部分我已经知道了。我的问题是,它只存储0,正如你在输出中看到的那样。是的,我得到了,那么0呢?@Miguel;我会回答的,但是如果你问关于
-1
-2
4
5
,我不理解你的问题。前三个数字总是正的。唯一可能为负的是w,因为它是边的长度。为什么这会改变我的输出。我知道不会打印第一行,但无法将所有内容打印到0that@Miguel您的代码正在打印新分配的
顶点的
顶点->u
,而不是前面
scanf()
中的
顶点。
0
的打印恰好是新分配的数据中的内容,它可能是任何
int
-这是未定义的行为。
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
u: 0 v: 0 w: 0
    // Add
    printf("u: %d v: %d w: %d\n", vertex->u, vertex->v, vertex->w);

    vertex->next = malloc(sizeof(struct info));
    vertex = vertex->next;
    // printf("u: %d v: %d w: %d\n", vertex->u, vertex->v, vertex->w);