gpt4 book ai didi

c - 在 C 中获取调试错误

转载 作者:行者123 更新时间:2023-12-02 07:05:03 25 4
gpt4 key购买 nike

我是'C'的学习者并编写了代码,但是在我编译它之后,显示了一个调试错误消息,这是代码:

#include<stdio.h>
void main()
{
int n,i=1;
char c;
printf("Enter Charecter:\t");
scanf("%s",&c);
printf("Repeat Time\t");
scanf("%d",&n);
n=n;
while (i <= n)
{
printf("%c",c);
i++;
}
}

请告诉我为什么会发生这种情况以及如何解决

最佳答案

scanf("%s", &c) 正在写入内存,它不应该因为 c 是单个 char"%s" 期望它的参数是一个数组。当 scanf() 附加一个空字符时,它至少会写入两个 charc (charstdin 加上空终止符读取),太多了。

使用char[]并限制scanf()写入的char的数量:

char data[10];
scanf("%9s", data);

并使用 printf("%s", data); 代替 %c 或使用 "%c" 作为格式说明符在 scanf() 中。

始终检查 scanf() 的返回值,这是成功赋值的次数,以确保后续代码不会处理陈旧或未初始化的变量:

if (1 == scanf("%d", &n))
{
/* 'n' assigned. 'n = n;' is unrequired. */
}

关于c - 在 C 中获取调试错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13822157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com