当我在开发C++中编译和运行时程序崩溃
Program Crashes When I Compile & Run in Dev C++
#include <stdio.h>
#include <conio.h>
#include <string.h>
main()
{
float gross=0,otp=0,ot=0,pay=0;
int IC,hours=0;
char name[50];
char category;
char rep = 'y';
while(rep == 'y')
{
printf("nn Name : ");
gets(name);
printf("n NRIC : ");
scanf ("%d",&IC);
printf("n Category : ");
scanf ("%s",&category);
printf("n Total Hours : ");
scanf("%d",&hours);
if (category = 'A1') //Line 25
{
if (hours < 44)
{
printf("n INVALID INPUTn");
}
else if (hours >= 44 && hours <= 60)
{
gross= 44*5;
ot= (hours-44)*(1/2*5);
pay=gross+ot;
printf("n Syarikat Smart Store Hypermarket Sdn. Bhd. ");
printf("n =============================================================="); //Line 39
printf("n Name: %s", name);
printf("n NRIC: %d", IC);
printf("n Category: %s", category);
printf("n Total Hours: %d", hours);
printf("n Gross Pay: RM %.2f", gross);
printf("n Overtime Pay: RM %.2f", ot);
printf("n Net Pay: RM %.2f", pay);
}
else
{
printf("nn INPUT NOT VALID");
我在代码中没有看到任何错误,除了第25行,它声明多字符字符常量警告,但程序工作到第39行并崩溃。任何想法为什么或有任何错误在我的代码,导致这一点?
至少有两个问题,其中一个已经被编译器指出:'A1'不是单个字符,您可以将其括在单引号(')中。你需要双引号。
除此之外,可能更重要的是:您实际上并没有在第25行中执行比较,而是更改了 category
的值(= vs ==),因此这意味着如果您的输入与A1
无关,那么您也将进入此条件,因此其他事情可能是错误的或不适合输入此特定的if
。
编辑:如果您确实在使用C
,那么您应该使用差异函数来比较您的字符串,如该页所示,在此线程中指向
所以你至少需要加上
#include <string.h>
然后将if
更改为
if ( strncmp(category,"A1",2) == 0 ) //Line 25
我假设您将category
变量的定义更改为char[50]
,就像您对name
所做的那样,并且您的类别总是只有两个字母。
我的编译器还警告
警告:' char* gets(char*) '已弃用
所以你可能也应该考虑远离这个
相关文章:
- 有没有一种方法可以测量c++程序的运行时内存使用情况
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- 为什么程序在 c++ 中迭代 emtpy 向量时会抛出运行时错误
- 在程序运行时监视 VxWorks 中的任务 CPU 利用率
- 程序在 Visual Studio 中停止运行时终止
- 调用 java 的回调() 时应用程序崩溃.由于 detatchThread 而获得运行时错误
- 在运行时使用枚举器值作为模板函数的模板参数的元程序
- QT C++防止关闭应用程序时出现运行时错误
- 每次运行此 c++ 程序时如何获得不同的数字?
- 运行 libpng 应用程序时出现运行时错误
- 以管理员身份运行应用程序时,有没有办法获取非管理员用户名
- 为什么程序运行时我的第二个循环不执行?
- valgrind:当试图调试在Docker容器内运行的C++程序时,堆块lo/hi大小不匹配
- 我的fahrenheit-celcius程序会忽略我的if-else语句,并在每次运行该程序时将值更改为0
- 如何在运行时对程序创建的.sys文件设置文件版本
- 如何在 c++ 程序运行时隐藏控制台?
- 在Visual Studio上运行时程序速度变慢
- 在 Eclipse 中运行时C++程序的输入提示不出现
- 当我在开发C++中编译和运行时程序崩溃
- 未连接调试器运行时程序中断