gpt4 book ai didi

c++ - Borland C++ 5.02 cout 未显示在控制台窗口中

转载 作者:行者123 更新时间:2023-11-28 05:26:32 26 4
gpt4 key购买 nike

对于这个新手问题,我很抱歉,我尝试使用 borland 5.02 编写此程序,但出于某种原因,当我编写 married 时,if (stat) 中的 cout 未显示在控制台窗口中。我不知道出了什么问题,我已经被困了几个小时。请帮助我

#include <stdio.h>
#include <conio.h>
#include <iostream.h>

int main()
{
int NIP, GOL, GP, TI, TA, JA, TG ;
char NM[20], STAT[10] ;

cout << "ID Number : " ;
cin >> NIP ;

cout << "Name : " ;
cin >> NM ;

cout << "Faction : " ;
cin >> GOL ;

if (GOL == 1)
{
GP = 1500000 ;
}
else if (GOL == 2)
{
GP = 2000000 ;
}
else
{
GP = 2500000 ;
}

cout << "Status : " ;
gets (STAT) ;

if (STAT == "Married" || STAT == "married")
{
cout << "Number of children : " << endl ;
cin >> JA ;
TI = 0.05 * GP ;

if (JA <= 3)
{
TA = 0.02 * GP * JA ;
}
else
{
TA = 0.02 * GP * 3 ;
}
}
else
{
TI = 0 ;
TA = 0 ;
}

TG = GP + TI+ TA ;

cout << endl << "-Results-" << endl ;
cout << "Your GP: " << GP << endl ;
cout << "Your TI: " << TI << endl ;
cout << "Your TA: " << TA << endl ;
cout << "Your TG: " << TG << endl ;

getch () ;

}

更新:我已尝试更改 gets(STAT) ;cin >> STAT ;之前,但它似乎没有任何影响。当我运行它们时程序看起来像这样


身份证号码:0123141421

名称:维克蒙

派系:1

状态:已婚(问题在这里)

-结果-

您的GP:1500000

你的成绩:0

你的助教:0

您的代币:1500000


即使我在状态上写了已婚,cout << "Number of children : " << endl ;没有出现在控制台窗口中。就好像 if (STAT == "Married" || STAT == "married")不工作,“状态:已婚”算作

else
{
TI = 0 ;
TA = 0 ;
}

最佳答案

STAT == "Married"如果 STAT 将在标准 C++ 中工作是std::string .

但是,它是char 的数组,这意味着您正在比较两个指针。因为 C++ 不支持数组的直接比较。因此,这两个数组表达式中的每一个都会衰减为指向第一项的指针。

并且这些指针保证是不同的。


注 1:Borland C++ 5.02 听起来像是 1990 年代中期,在第一个 C++ 标准出现之前。有许多免费的现代编译器。最著名的三个是 g++、clang 和 Visual C++(后者仅适用于 PC 平台)。

注意 2:我记得 std::string在 Borland C++ 中完全是拙劣的。如果只是使用 std::string不起作用,考虑使用 strcmp比较 C 字符串(比如您拥有的数组)。

注意 3:在标准 C++ 中(自 1998 年第一个标准以来)没有 <iostream.h> header 。而是包括 <iostream> , 并可能添加 using namespace std; .或合适using指令或名称限定,如 coutendl ,即写 std::coutstd::endl .


在其他新闻中:

  • 通过为宏保留 SHOUTCASE 名称,您可以显着简化代码阅读体验,并避免意外的文本替换启动。更不用说遵守关于这方面的共同约定了。

  • 通过使用 getline而不是 >> ,程序可以读取其中包含空格的名称。然而,这只有在输入缓冲区为空时才能很好地工作(因为 getline 不会跳过空格)。因此,这是需要考虑的事情,但可能涉及一些工作。

关于c++ - Borland C++ 5.02 cout 未显示在控制台窗口中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40446952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com