编译失败,出现"error: stray '342' in program"



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

输出:

Line 16: error: stray '342' in program
compilation terminated due to -Wfatal-errors.

源:

#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();
}

你需要使用一个合适的编辑器。您使用的是而不是".前者是源代码中不允许C++字符,后者是常规双引号。

如果我看到您的代码,您似乎正在使用适合编写常规文本(如信件、文章等)的文字处理器。请注意,源代码是不同的,您需要使用编辑器。例如,我使用emacs,还有其他选择。(源代码)编辑器不会尝试用更吸引人的东西替换您键入的字符或大写单词(我认为这发生在VoidInt等 - 这些需要voidint、......

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

2.3 字符集

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

0 1 2 3 4 5 6 7 8 9

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

14) 基本源字符集成员的字形用于标识 ISO/IEC 10646 子集中对应于 ASCII 字符集的字符。但是,由于从源文件字符到源字符集的映射(在转换阶段 1 中描述)被指定为实现定义的,因此需要一个实现来记录基本源字符在源文件中的表示方式。

最新更新