Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
如何使用sprintf在结构中写入char_C - Fatal编程技术网

如何使用sprintf在结构中写入char

如何使用sprintf在结构中写入char,c,C,我为学校写了这个程序,但即使它完成了,dev cpp最后还是给了我一个SIGSEGV错误。 通过在谷歌上搜索,我发现我的问题可能来自于我的结构中与我的角色有关的一切。 我试图用sprintf在我的char-nom[10]和char-nom_团队[10]上写文章。 我这样做是因为我想在默认的“玩家”名称上添加一个数字,如下所示: 玩家1,玩家2 我不知道我到底想在什么地方写我不拥有的记忆。 我不知道还有什么其他方法可以达到玩家1,玩家2,。。。事情也一样 谢谢你的帮助 编辑(迈克尔·沃尔兹评论后的

我为学校写了这个程序,但即使它完成了,dev cpp最后还是给了我一个SIGSEGV错误。 通过在谷歌上搜索,我发现我的问题可能来自于我的结构中与我的角色有关的一切。 我试图用sprintf在我的char-nom[10]和char-nom_团队[10]上写文章。 我这样做是因为我想在默认的“玩家”名称上添加一个数字,如下所示: 玩家1,玩家2

我不知道我到底想在什么地方写我不拥有的记忆。 我不知道还有什么其他方法可以达到玩家1,玩家2,。。。事情也一样

谢谢你的帮助

编辑(迈克尔·沃尔兹评论后的完整代码和编辑)

我只得到这个

name : player 1
HP : 103
ATK : 19
DEF : 9

name : player 2
HP : 100
ATK : 12
DEF : 6

name : player 3
HP : 107
ATK : 12
DEF : 8

name : player 4
HP : 101
ATK : 19
DEF : 6

name : player 5
HP : 108
ATK : 17
DEF : 8


--------------------------------
Process exited after 2.507 seconds with return value 3221225477
Appuyez sur une touche pour continuer...
我想要的结果是这样的(除了t2 wins被写入时)@■b“在“垂直”的底部:

在任何一种情况下,当我只是使用dev cpp编译和运行程序时,windows告诉我一切都完成后程序崩溃了。 当我使用

最后我得到了SIGSEGV错误

注2:我们还没有学习snprintf,所以我不允许使用这个命令;没有实际的输入;关于给出SIGSEGV错误的那一行,我不知道如何让dev cpp说出它是哪一行,我得到的唯一方法是将代码块转换成注释(显然是保留一个可编译的程序)直到错误消失,我把我带到这一行:

sprintf(p->name,"player %d",i); //applying player name

您的
团队
数组有2个元素,但您正在将内容放入索引1和索引2中。C中的数组是基于零的-第一个元素是
[0]
,因此您希望使用元素
[0]
[1]

Team t[2];
...
sprintf(t[0].name_team,"%s","Orange");
sprintf(t[1].name_team,"%s","Verte");
... 
// etc - change all t[1] references to t[0], and all t[2] references to t[1]

另外,将
for
循环更改为
for(i=0;i您的
团队
数组有2个元素,但您正在将内容放入索引1和2中。C中的数组是基于零的-第一个元素是
[0]
,因此您希望使用元素
[0]
[1]

Team t[2];
...
sprintf(t[0].name_team,"%s","Orange");
sprintf(t[1].name_team,"%s","Verte");
... 
// etc - change all t[1] references to t[0], and all t[2] references to t[1]

同时将
for
循环更改为
for(i=0;i保存完整代码。在
init_Perso
i
是否超过99?如果超过99,则您的
sprintf(p->nom…
将超过您分配给
p->nom
的10个字节。如果看不到您正在调用
init_Perso
的位置,很难判断您在该区域是否有bug。这是研究使用GDB并逐步完成程序的好时机。
char nom[10]
char nom_团队[10];
:10有点短,试着
[100]
而不是
[10]
。如果问题消失了,你知道该往哪里看……请说明你如何称呼
init\u团队
。问题的根源可能在那里。发布完整的代码。在
init\u Perso
中,
i
有没有超过99?如果有,那么你的
sprint>(p->nom…
将超过您分配给
p->nom
的10个字节。如果看不到您正在调用
init_Perso
的位置,很难判断您在该区域是否有bug。这是研究使用GDB并逐步完成程序的好时机。
char nom[10]
char nom_团队[10];
:10有点短,请尝试
[100]
而不是
[10]
。如果问题消失了,您知道该往哪里看……请说明如何调用
init_team
。您的问题可能就在那里。非常感谢!它现在工作正常。有没有办法将此问题标记为“已解决”的非常感谢!它现在运行得很好。有没有办法将这个问题标记为“已解决”?
name : player 1
HP : 109
ATK : 14
DEF : 9

name : player 2
HP : 106
ATK : 12
DEF : 8

name : player 3
HP : 106
ATK : 17
DEF : 8

name : player 4
HP : 100
ATK : 11
DEF : 8

name : player 5
HP : 103
ATK : 12
DEF : 9

name : player 6
HP : 106
ATK : 12
DEF : 6

name : player 7
HP : 105
ATK : 13
DEF : 7

name : player 8
HP : 107
ATK : 19
DEF : 7

name : player 9
HP : 100
ATK : 16
DEF : 8

name : player 10
HP : 105
ATK : 11
DEF : 9

Gerald de la team Orange contre Gandalf de la team Verte
HP p1 : 109
HP p2 : 106
DAM : 8
HP p1 : 109
HP p2 : 98
DAM : 3
HP p1 : 106
HP p2 : 98
DAM : 8
HP p1 : 106
HP p2 : 90
DAM : 3
HP p1 : 103
HP p2 : 90
DAM : 8
HP p1 : 103
HP p2 : 82
DAM : 3
HP p1 : 100
HP p2 : 82
DAM : 8
HP p1 : 100
HP p2 : 74
DAM : 3
HP p1 : 97
HP p2 : 74
DAM : 8
HP p1 : 97
HP p2 : 66
DAM : 3
HP p1 : 94
HP p2 : 66
DAM : 8
HP p1 : 94
HP p2 : 58
DAM : 3
HP p1 : 91
HP p2 : 58
DAM : 8
HP p1 : 91
HP p2 : 50
DAM : 3
HP p1 : 88
HP p2 : 50
DAM : 8
HP p1 : 88
HP p2 : 42
DAM : 3
HP p1 : 85
HP p2 : 42
DAM : 8
HP p1 : 85
HP p2 : 34
DAM : 3
HP p1 : 82
HP p2 : 34
DAM : 8
HP p1 : 82
HP p2 : 26
DAM : 3
HP p1 : 79
HP p2 : 26
DAM : 8
HP p1 : 79
HP p2 : 18
DAM : 3
HP p1 : 76
HP p2 : 18
DAM : 8
HP p1 : 76
HP p2 : 10
DAM : 3
HP p1 : 73
HP p2 : 10
DAM : 8
HP p1 : 73
HP p2 : 2
DAM : 3
HP p1 : 70
HP p2 : 2
DAM : 8
Gerald de la team Orange contre Jaena de la team Verte
HP p1 : 70
HP p2 : 105
DAM : 7
HP p1 : 70
HP p2 : 98
DAM : 4
HP p1 : 66
HP p2 : 98
DAM : 7
HP p1 : 66
HP p2 : 91
DAM : 4
HP p1 : 62
HP p2 : 91
DAM : 7
HP p1 : 62
HP p2 : 84
DAM : 4
HP p1 : 58
HP p2 : 84
DAM : 7
HP p1 : 58
HP p2 : 77
DAM : 4
HP p1 : 54
HP p2 : 77
DAM : 7
HP p1 : 54
HP p2 : 70
DAM : 4
HP p1 : 50
HP p2 : 70
DAM : 7
HP p1 : 50
HP p2 : 63
DAM : 4
HP p1 : 46
HP p2 : 63
DAM : 7
HP p1 : 46
HP p2 : 56
DAM : 4
HP p1 : 42
HP p2 : 56
DAM : 7
HP p1 : 42
HP p2 : 49
DAM : 4
HP p1 : 38
HP p2 : 49
DAM : 7
HP p1 : 38
HP p2 : 42
DAM : 4
HP p1 : 34
HP p2 : 42
DAM : 7
HP p1 : 34
HP p2 : 35
DAM : 4
HP p1 : 30
HP p2 : 35
DAM : 7
HP p1 : 30
HP p2 : 28
DAM : 4
HP p1 : 26
HP p2 : 28
DAM : 7
HP p1 : 26
HP p2 : 21
DAM : 4
HP p1 : 22
HP p2 : 21
DAM : 7
HP p1 : 22
HP p2 : 14
DAM : 4
HP p1 : 18
HP p2 : 14
DAM : 7
HP p1 : 18
HP p2 : 7
DAM : 4
HP p1 : 14
HP p2 : 7
DAM : 7
Gerald de la team Orange contre Philip de la team Verte
HP p1 : 14
HP p2 : 107
DAM : 7
HP p1 : 14
HP p2 : 100
DAM : 10
HP p1 : 4
HP p2 : 100
DAM : 7
HP p1 : 4
HP p2 : 93
DAM : 10
Ilda de la team Orange contre Philip de la team Verte
HP p1 : 106
HP p2 : 93
DAM : 5
HP p1 : 106
HP p2 : 88
DAM : 11
HP p1 : 95
HP p2 : 88
DAM : 5
HP p1 : 95
HP p2 : 83
DAM : 11
HP p1 : 84
HP p2 : 83
DAM : 5
HP p1 : 84
HP p2 : 78
DAM : 11
HP p1 : 73
HP p2 : 78
DAM : 5
HP p1 : 73
HP p2 : 73
DAM : 11
HP p1 : 62
HP p2 : 73
DAM : 5
HP p1 : 62
HP p2 : 68
DAM : 11
HP p1 : 51
HP p2 : 68
DAM : 5
HP p1 : 51
HP p2 : 63
DAM : 11
HP p1 : 40
HP p2 : 63
DAM : 5
HP p1 : 40
HP p2 : 58
DAM : 11
HP p1 : 29
HP p2 : 58
DAM : 5
HP p1 : 29
HP p2 : 53
DAM : 11
HP p1 : 18
HP p2 : 53
DAM : 5
HP p1 : 18
HP p2 : 48
DAM : 11
HP p1 : 7
HP p2 : 48
DAM : 5
HP p1 : 7
HP p2 : 43
DAM : 11
Falion de la team Orange contre Philip de la team Verte
HP p1 : 106
HP p2 : 43
DAM : 10
HP p1 : 106
HP p2 : 33
DAM : 11
HP p1 : 95
HP p2 : 33
DAM : 10
HP p1 : 95
HP p2 : 23
DAM : 11
HP p1 : 84
HP p2 : 23
DAM : 10
HP p1 : 84
HP p2 : 13
DAM : 11
HP p1 : 73
HP p2 : 13
DAM : 10
HP p1 : 73
HP p2 : 3
DAM : 11
HP p1 : 62
HP p2 : 3
DAM : 10
Falion de la team Orange contre Astrid de la team Verte
HP p1 : 62
HP p2 : 100
DAM : 9
HP p1 : 62
HP p2 : 91
DAM : 8
HP p1 : 54
HP p2 : 91
DAM : 9
HP p1 : 54
HP p2 : 82
DAM : 8
HP p1 : 46
HP p2 : 82
DAM : 9
HP p1 : 46
HP p2 : 73
DAM : 8
HP p1 : 38
HP p2 : 73
DAM : 9
HP p1 : 38
HP p2 : 64
DAM : 8
HP p1 : 30
HP p2 : 64
DAM : 9
HP p1 : 30
HP p2 : 55
DAM : 8
HP p1 : 22
HP p2 : 55
DAM : 9
HP p1 : 22
HP p2 : 46
DAM : 8
HP p1 : 14
HP p2 : 46
DAM : 9
HP p1 : 14
HP p2 : 37
DAM : 8
HP p1 : 6
HP p2 : 37
DAM : 9
HP p1 : 6
HP p2 : 28
DAM : 8
Thor de la team Orange contre Astrid de la team Verte
HP p1 : 100
HP p2 : 28
DAM : 3
HP p1 : 100
HP p2 : 25
DAM : 8
HP p1 : 92
HP p2 : 25
DAM : 3
HP p1 : 92
HP p2 : 22
DAM : 8
HP p1 : 84
HP p2 : 22
DAM : 3
HP p1 : 84
HP p2 : 19
DAM : 8
HP p1 : 76
HP p2 : 19
DAM : 3
HP p1 : 76
HP p2 : 16
DAM : 8
HP p1 : 68
HP p2 : 16
DAM : 3
HP p1 : 68
HP p2 : 13
DAM : 8
HP p1 : 60
HP p2 : 13
DAM : 3
HP p1 : 60
HP p2 : 10
DAM : 8
HP p1 : 52
HP p2 : 10
DAM : 3
HP p1 : 52
HP p2 : 7
DAM : 8
HP p1 : 44
HP p2 : 7
DAM : 3
HP p1 : 44
HP p2 : 4
DAM : 8
HP p1 : 36
HP p2 : 4
DAM : 3
HP p1 : 36
HP p2 : 1
DAM : 8
HP p1 : 28
HP p2 : 1
DAM : 3
Thor de la team Orange contre Ponchaut de la team Verte
HP p1 : 28
HP p2 : 105
DAM : 2
HP p1 : 28
HP p2 : 103
DAM : 3
HP p1 : 25
HP p2 : 103
DAM : 2
HP p1 : 25
HP p2 : 101
DAM : 3
HP p1 : 22
HP p2 : 101
DAM : 2
HP p1 : 22
HP p2 : 99
DAM : 3
HP p1 : 19
HP p2 : 99
DAM : 2
HP p1 : 19
HP p2 : 97
DAM : 3
HP p1 : 16
HP p2 : 97
DAM : 2
HP p1 : 16
HP p2 : 95
DAM : 3
HP p1 : 13
HP p2 : 95
DAM : 2
HP p1 : 13
HP p2 : 93
DAM : 3
HP p1 : 10
HP p2 : 93
DAM : 2
HP p1 : 10
HP p2 : 91
DAM : 3
HP p1 : 7
HP p2 : 91
DAM : 2
HP p1 : 7
HP p2 : 89
DAM : 3
HP p1 : 4
HP p2 : 89
DAM : 2
HP p1 : 4
HP p2 : 87
DAM : 3
HP p1 : 1
HP p2 : 87
DAM : 2
HP p1 : 1
HP p2 : 85
DAM : 3
Ralof de la team Orange contre Ponchaut de la team Verte
HP p1 : 103
HP p2 : 85
DAM : 3
HP p1 : 103
HP p2 : 82
DAM : 2
HP p1 : 101
HP p2 : 82
DAM : 3
HP p1 : 101
HP p2 : 79
DAM : 2
HP p1 : 99
HP p2 : 79
DAM : 3
HP p1 : 99
HP p2 : 76
DAM : 2
HP p1 : 97
HP p2 : 76
DAM : 3
HP p1 : 97
HP p2 : 73
DAM : 2
HP p1 : 95
HP p2 : 73
DAM : 3
HP p1 : 95
HP p2 : 70
DAM : 2
HP p1 : 93
HP p2 : 70
DAM : 3
HP p1 : 93
HP p2 : 67
DAM : 2
HP p1 : 91
HP p2 : 67
DAM : 3
HP p1 : 91
HP p2 : 64
DAM : 2
HP p1 : 89
HP p2 : 64
DAM : 3
HP p1 : 89
HP p2 : 61
DAM : 2
HP p1 : 87
HP p2 : 61
DAM : 3
HP p1 : 87
HP p2 : 58
DAM : 2
HP p1 : 85
HP p2 : 58
DAM : 3
HP p1 : 85
HP p2 : 55
DAM : 2
HP p1 : 83
HP p2 : 55
DAM : 3
HP p1 : 83
HP p2 : 52
DAM : 2
HP p1 : 81
HP p2 : 52
DAM : 3
HP p1 : 81
HP p2 : 49
DAM : 2
HP p1 : 79
HP p2 : 49
DAM : 3
HP p1 : 79
HP p2 : 46
DAM : 2
HP p1 : 77
HP p2 : 46
DAM : 3
HP p1 : 77
HP p2 : 43
DAM : 2
HP p1 : 75
HP p2 : 43
DAM : 3
HP p1 : 75
HP p2 : 40
DAM : 2
HP p1 : 73
HP p2 : 40
DAM : 3
HP p1 : 73
HP p2 : 37
DAM : 2
HP p1 : 71
HP p2 : 37
DAM : 3
HP p1 : 71
HP p2 : 34
DAM : 2
HP p1 : 69
HP p2 : 34
DAM : 3
HP p1 : 69
HP p2 : 31
DAM : 2
HP p1 : 67
HP p2 : 31
DAM : 3
HP p1 : 67
HP p2 : 28
DAM : 2
HP p1 : 65
HP p2 : 28
DAM : 3
HP p1 : 65
HP p2 : 25
DAM : 2
HP p1 : 63
HP p2 : 25
DAM : 3
HP p1 : 63
HP p2 : 22
DAM : 2
HP p1 : 61
HP p2 : 22
DAM : 3
HP p1 : 61
HP p2 : 19
DAM : 2
HP p1 : 59
HP p2 : 19
DAM : 3
HP p1 : 59
HP p2 : 16
DAM : 2
HP p1 : 57
HP p2 : 16
DAM : 3
HP p1 : 57
HP p2 : 13
DAM : 2
HP p1 : 55
HP p2 : 13
DAM : 3
HP p1 : 55
HP p2 : 10
DAM : 2
HP p1 : 53
HP p2 : 10
DAM : 3
HP p1 : 53
HP p2 : 7
DAM : 2
HP p1 : 51
HP p2 : 7
DAM : 3
HP p1 : 51
HP p2 : 4
DAM : 2
HP p1 : 49
HP p2 : 4
DAM : 3
HP p1 : 49
HP p2 : 1
DAM : 2
HP p1 : 47
HP p2 : 1
DAM : 3
Orange

--------------------------------
Process exited after 5.682 seconds with return value 3221225477
Appuyez sur une touche pour continuer...
sprintf(p->name,"player %d",i); //applying player name
Team t[2];
...
sprintf(t[0].name_team,"%s","Orange");
sprintf(t[1].name_team,"%s","Verte");
... 
// etc - change all t[1] references to t[0], and all t[2] references to t[1]