C++ Stack around the variable 'Operatorstr' was corrupted望解答下

两数相加
#include<stdio.h>
int main()
{
 int firstNumber, secondNumber, sumofTwoNumbers;
 printf_s("请输入两个整数");
 scanf_s("%d %d", &firstNumber, &secondNumber);
 sumofTwoNumbers = firstNumber + secondNumber;
 printf_s("%d+%d=%d", firstNumber, secondNumber, sumofTwoNumbers);
 scanf_s("");


 return 0;
}
这样写没问题,加了char类型出错,存在C++ Stack around the variable 'Operatorstr' was corrupted
#include<stdio.h>
int main()
{
 int firstNumber, secondNumber;    // 第一个数,第二个数
 char Operatorstr;                 // 运算符
 int sumofTwoNumbers;              // 和
 int differenceofTwoNumbers;       // 差
 int productofTwoNumbers;          // 乘积
 int quotient, remainder;          // 商,余数
 printf_s("2 2 \n");
 scanf_s("%d %d", &firstNumber, &secondNumber);
 printf_s("+-*/ ");
 scanf_s("%s", &Operatorstr,4);
 switch (Operatorstr) {
 case '+':
  sumofTwoNumbers = firstNumber + secondNumber;
  printf_s("%d + %d=%d\n", firstNumber, secondNumber, sumofTwoNumbers);
  break;
 case '-':
  differenceofTwoNumbers = firstNumber - secondNumber;
  printf_s("%d - %d=%d\n", firstNumber, secondNumber, differenceofTwoNumbers);
  break;
 case '*':
  productofTwoNumbers = firstNumber * secondNumber;
  printf_s("%d * %d=%d\n", firstNumber, secondNumber, productofTwoNumbers);
  break;
 case '/':
  quotient = firstNumber / secondNumber;
  remainder = firstNumber % secondNumber;
  printf_s("%d / %d=%d······%d\n", firstNumber, secondNumber, quotient, remainder);
  break;
 default:
  printf_s("default");
 }
 scanf_s("");
 return 0;
}
posted @   ꧁执笔小白꧂  阅读(251)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示