遇到此代码时遇到问题

时间:2015-07-22 10:42:53

标签: c++

我在编译这段特殊代码时遇到了一些麻烦,

#include<iostream>
#include<conio.h>
#pragma hdrstop
using namespace std;
#include <tchar.h>
void mark(int)
//---------------------------------------------------------------------------
#pragma argsused
int_tmain(int argc, _TCHAR* argv[])
{
    cout << " Enter a Students Mark: ";
    cin  >> mark;

    if (mark >= 80 )
    cout << "A" ;
    else
        if (mark >= 65)
            cout << " B" ;
                else
                    if (mark >= 50 )
                        cout << "c";
                        else
                            {
                            numberFailed += 1;
                            if (mark >= 40 )
                                cout << "D"
                                    else
                                        cout << "E";

                            }
    getch();
    return 0;
}
//---------------------------------------------------------------------------

如果有人能指出我正确的方向,那将是非常感激的。 Embarcadero的编译器突出显示以下行 int_tmain(int argc,_TCHAR * argv [])

并给我错误信息[bcc32错误]学生Marks.cpp(18):E2141声明语法错误

我迷失了。

2 个答案:

答案 0 :(得分:1)

您提出的问题是:

void mark(int)
//---------------------------------------------------------------------------
#pragma argsused
int_tmain(int argc, _TCHAR* argv[]) // This line here 

第一行是函数声明,需要用分号终止。因为后面的行是注释和预处理器指令,所以编译器在遇到main定义之前不知道任何错误。

天真的解决方案是添加分号(以及修复同样被破坏的main定义):

void mark(int);
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, _TCHAR* argv[])

但是,查看代码的其余部分,很清楚mark根本不是函数。它是一个整数。因此,您应该完全删除该行,并在mark函数中声明main

int main(int argc, _TCHAR* argv[])
{
    int mark = 0;
    int numberFailed = 0;

    cout << " Enter a Students Mark: ";
    cin  >> mark;

    if (mark >= 80 )
        cout << "A" ;
    else if (mark >= 65)
        cout << " B" ;
    else if (mark >= 50 )
        cout << "C";
    else
    {
        numberFailed++;   ///< You don't actually use this value
        if (mark >= 40 )
            cout << "D"
        else
            cout << "E";
    }

    getch();
    return 0;
}

注意我还添加了您忘记申报的numberFailed。而且,当你宣布它们时,总是将你的价值观初始化,这是一个很好的做法,这将为你节省一些眼泪。

答案 1 :(得分:0)

我想你想要这样的东西(只是一个想法):

{{1}}