C++ 编译失败,返回“0”;错误:杂散'\342';“在程序中”;

C++ 编译失败,返回“0”;错误:杂散'\342';“在程序中”;,c++,C++,(a) 使用所有基本属性(如标题、作者、出版商、价格等)定义类Book。定义默认构造函数、成员函数display\u data()以显示Book详细信息。在此程序中使用适当的访问控制说明符 输出: 第16行:错误:程序中出现杂散'\342' 编译因-Wfatal错误而终止。 资料来源: #include <iostream> #include <string> using namespace std; Class Book { Int ISBNNo;

(a) 使用所有基本属性(如标题、作者、出版商、价格等)定义类
Book
。定义默认构造函数、成员函数
display\u data()
以显示
Book
详细信息。在此程序中使用适当的访问控制说明符

输出:

第16行:错误:程序中出现杂散'\342'
编译因-Wfatal错误而终止。
资料来源:

#include <iostream>
#include <string>

using namespace std;

Class Book
{
    Int ISBNNo;
    Char Title[30];
    Char Author[30];
    Char pub[50];
    Float price;

    Public: Book()
    {
        ISBNNO = 1001;
        Strcpy(Title, ”C++ Programming”);
        Strcpy(Author, “E.Balagurusamy”);
        Strcpy(pub, “Tata Press”);
        Price = 300;
    }

    Void display_data()
    {
        Cout << ”Book ISBNNO” << ISBNNO << endl;
        Cout << ”Book Title” << Title << endl;
        Cout << ”Book Author Name” << Author << endl;
        Cout << ”Book Publisher” << pub << endl;
        Cout << ”Book Price” << price << endl;
    }
};

Main()
{
    Book B;
    B.display_data();
    getch();
}
#包括
#包括
使用名称空间std;
课堂用书
{
Int ISBNNo;
字符标题[30];
Char作者[30];
Char pub[50];
浮动价格;
公众:Book()
{
ISBNNO=1001;
Strcpy(题目是“C++编程”);
Strcpy(作者,“E.Balagurusamy”);
Strcpy(塔塔出版社出版);
价格=300;
}
无效显示_数据()
{

CUT< P>需要使用适当的编辑器。你使用的是“<代码>”/“代码>而不是<代码>”/>代码。前者是C++源代码中不允许的字符,后者是一个规则的双引号。

如果我看到你的代码,你似乎正在使用一个字处理器来编写常规文本(如信件、文章等)。请注意,源代码是不同的,你需要使用一个编辑器。例如,我使用,其他替代方法都可用。a(源代码)编辑器不会尝试用更吸引人或大写的词替换您键入的字符(我认为这是发生在
Void
Int
等中的情况-这些字符必须是
Void
Int
,…)

C++标准定义了2.3中的允许字符:

2.3字符集[lex.charset] 1基本源字符集由96个字符组成:空格字符、表示水平制表符、垂直制表符、换行符和换行符的控制字符,以及以下91个图形字符:14

a b c d e f g h i j k l m n o p q r s t u v w x y z

A B C D E F G H I J K L M N O p Q R S T U V W X Y Z

0123456789

{}[]#()<>%:;.?*+-/^&&∼ ! = , \ " ’

14) 基本源字符集成员的标志符号用于识别ISO/IEC 10646子集中的字符,该子集对应于ASCII字符集。但是,由于源文件字符到源字符集的映射(在翻译阶段1中描述)如果指定为实现定义,则需要实现来记录基本源字符在源文件中的表示方式


有趣的是,在某些地方“用于打开和关闭,而在其他地方”用于打开。这就像有人神经质或真的试图混淆代码。顺便说一句,该代码有比“…C++是区分大小写的。那么什么是代码>空> <代码>主< <代码>代码> INT/<代码>代码> Char >代码>等等?我觉得好像有人从网站上复制了一些代码,粘贴到Word(或其他的文字处理器)中,然后从那里复制并粘贴到IDE中。你是说“某人”吗??@adripanico我见过的最糟糕的代码片段更糟糕,是由“专业人士”编写的.OP显然是一个初学者,但问题是,我不明白为什么它会被否决。每个人都曾经开始过,我很容易想象类似的事情会发生在很多人身上。让我们帮助他们克服这个障碍,而不是因为他们试图学习新东西而抨击他们。迂腐:后者不是Unicode字符?a为什么在C++源代码中不允许这样做?(我想象一个模糊的实现,允许<代码> HGLT“< /代码>作为标识符…”)Dyp允许的字符在第2.3节中定义,并且任何允许您创建的标识符的实现将导致不可移植的源代码。[LXE.Name ](或2.11)描述标识符的有效字符,并列出“其他实现定义的字符”。但是,是的,这会导致源代码不可移植。但是,也没有指定源文件的编码。2.3只定义了lex字符集。它并没有说如果使用该字符集之外的内容,就一定要生成错误。@thang这个问题并不简单。源字符代码到内部字符由实现定义。映射后,标准允许作为字符串文本分隔符的唯一字符是Uniocde\u0022,但实现肯定可以在输入时将\u201C和\u201D映射到\0022。类似地,实现可以拒绝所有字符,但§2.3中明确列出的字符除外,并要求对左引号字符使用
wchar\u t quote=“\u201C”
。实际上,使用上述字符以外的任何字符都会导致移植问题。