C语言 字符串输入输出中引发异常

7hiiyaii  于 2022-12-17  发布在  其他
关注(0)|答案(1)|浏览(252)

我在学校的项目中遇到了一个字符串问题,无法解决它,我做了一个测试程序来排除故障,但没有任何运气。我试图只做一个简单的程序来获取一个字符串值,然后将其打印到控制台。当它试图打印字符串时,程序崩溃并抛出异常。我不明白,我认为它是试图保存字符串数据到内存地址,它没有访问,但我不确定,因为我尝试了我的笔记本电脑和个人电脑与相同的问题。
“标记.c.exe时在0x00007FFAACA60369(ucrtbased.dll)处抛出异常:0xC0000005:写入位置0x0000001F1F100000时发生访问冲突。”

#include <stdio.h>

int main() {
    char string[100];
    printf("Enter a string: ");
    scanf_s(" %s ", &string);
    printf(" %s ", string);

    return 0;
}
qgelzfjb

qgelzfjb1#

scanf_s(" %s ", &string);因缺少参数而失败。%s需要指针和大小。

scanf_s(" %s ", string, (rsize_t) 100);

请查看scanf_s()上的编译器详细信息,因为某些编译器没有详细遵循C标准。
备选方案:查看fgets()以将 * 行 * 读入 * 字符串 *。
"%s"前的空格没有任何意义,最好删除它。
"%s"块后的空格,直到检测到后面的非空白。最好也删除此空格。

相关问题