mm1mm 发表于 2021-6-24 16:25:32

字符型输入引起地址冲突

本帖最后由 mm1mm 于 2021-6-24 16:34 编辑

#include<stdio.h>

void main()

{
        char a, b, c;
        printf("input character a and b:\n");
        scanf_s("%c%c", &a, &b);
        printf("&c%c\n", a, b);


}

照着小甲鱼抄的~

0x621AA261 (ucrtbased.dll) (student1.exe 中)处有未经处理的异常: 0xC0000005: 写入位置 0x00101023 时发生访问冲突。

用的是VS2019这是啥情况呀.

人造人 发表于 2021-6-24 16:27:16

用错误的输入格式,怎么可能正确?
你说对不对?

mm1mm 发表于 2021-6-24 16:30:48

人造人 发表于 2021-6-24 16:27
用错误的输入格式,怎么可能正确?
你说对不对?

能麻烦指导一下嘛 新手自学的.

人造人 发表于 2021-6-24 16:36:33

奇怪,书上应该写了呀
float 类型应该用 %f

#include <stdio.h>

int main(void)
{
    float a, b, c;
    scanf("%f%f%f", &a, &b, &c);
    printf("%f%f%f\n", a, b, c);
    return 0;
}

mm1mm 发表于 2021-6-24 16:39:54

人造人 发表于 2021-6-24 16:36
奇怪,书上应该写了呀
float 类型应该用 %f

是我录入的时候录错了 你看下我上面新复制过来的 这是照着小甲鱼视频上抄的 出现错误提示

人造人 发表于 2021-6-24 16:43:34

mm1mm 发表于 2021-6-24 16:39
是我录入的时候录错了 你看下我上面新复制过来的 这是照着小甲鱼视频上抄的 出现错误提示


一定要认真一点呀
printf("&c%c\n", a, b);

mm1mm 发表于 2021-6-24 17:09:11

人造人 发表于 2021-6-24 16:43
一定要认真一点呀
printf("&c%c\n", a, b);

改了还是报错...

人造人 发表于 2021-6-24 17:12:30

mm1mm 发表于 2021-6-24 17:09
改了还是报错...

我看不到报错信息呀

mm1mm 发表于 2021-6-24 17:15:19

scanf_s("%c%c", &a, &b);

主要是对这个语句报错0x790BA261 (ucrtbased.dll) (student1.exe 中)处有未经处理的异常: 0xC0000005: 写入位置 0x00991023 时发生访问冲突。

人造人 发表于 2021-6-24 17:19:04

mm1mm 发表于 2021-6-24 17:15
scanf_s("%c%c", &a, &b);

主要是对这个语句报错0x790BA261 (ucrtbased.dll) (student1.exe 中)处有未 ...

a和b什么类型的?把代码发完整

mm1mm 发表于 2021-6-24 17:29:19

#include<stdio.h>

void main()

{
      char a, b, c;
      printf("input character a and b:\n");
      scanf_s("%c%c", &a, &b);
      printf("&c%c\n", a, b);


}
是不是这里不能用scanf只能用getchar

肖-肖 发表于 2021-6-24 17:43:06

mm1mm 发表于 2021-6-24 17:29
#include

void main()



printf("&c%c\n", a, b);
改为
printf("%c%c\n", a, b);


scanf_s("%c%c", &a, &b);
改为
scanf("%c%c", &a, &b);

mm1mm 发表于 2021-6-24 17:47:23

肖-肖 发表于 2021-6-24 17:43

printf("&c%c\n", a, b);
改为


使用的是vs2019 不管是使用scanf_s 还是scanf 都是报错的.
程序是可以运行的 不过输入数据后提示内存错误

永恒的蓝色梦想 发表于 2021-6-24 17:51:58

人造人 发表于 2021-6-24 17:19
a和b什么类型的?把代码发完整

错误原因是 scanf_s 扫描字符需要额外给一个大小参数,应该改为#include<stdio.h>


void main()
{
    char a, b, c;
    printf("input character a and b:\n");
    scanf_s("%c%c", &a, 1, &b, 1);
    printf("%c%c\n", a, b);
}
页: [1]
查看完整版本: 字符型输入引起地址冲突