Aseeker 发表于 2019-9-22 10:22:16

C++ 求解

#include<stdio.h>
void main()
{
        char name,zhuanye;
        int xuehao;
        printf("请输入自己的姓名,学号,专业:");
        scanf("%s,%d,%s",&name,&xuehao,&zhuanye);
        printf("%s,%d,%s",name,xuehao,zhuanye);
        system("pause");
}

5.exe 中的 0x102514cf (msvcr100d.dll) 处最可能的异常: 0xC0000005: 读取位置 0xffffffc1 时发生访问冲突
在已损坏了程序内部状态的 5.exe 中发生了缓冲区溢出。按“中断”以调试程序,或按“继续”以终止程序。

jackz007 发表于 2019-9-22 10:28:05

本帖最后由 jackz007 于 2019-9-22 12:07 编辑

      char name ,zhuanye ;   // name、zhuanye 必须是拥有足够容量的字符数组
      scanf("%s,%d,%s", name,&xuehao, zhuanye);    // 必须去掉 name、zhuanye 的取址操作符,建议去掉 "%s,%d,%s" 中间的逗号分隔
      system("pause") ;   // 调用此函数必须添加包含文件 <stdlib.h>

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
      char name , zhuanye                  ;
      int xuehao                                     ;
      printf("请输入自己的姓名,学号,专业:")       ;
      scanf("%s%d%s" , name, & xuehao , zhuanye)   ;
      printf("%s,%d,%s\n" , name , xuehao , zhuanye) ;
      system("pause")                              ;
}

pythonsrj 发表于 2019-9-22 11:21:30

在加个头文件#include<string.h>

bin554385863 发表于 2019-9-22 12:27:25

要么使用指针,要么使用数组

西瓜小刚 发表于 2019-9-23 19:46:24

你这哪里是C++, char 定义的只有一个字节 scanf的时候 也应当是%c
你这键入字符串 肯定不行撒,用数组 或指针 若 C++ , 还可以用 string 类型
页: [1]
查看完整版本: C++ 求解