编译失败,程序中出现“error:stray'\ 342'”

时间:2013-09-18 07:34:04

标签: c++

  

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

输出:

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

1 个答案:

答案 0 :(得分:3)

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

如果我看到您的代码,您似乎正在使用适合编写常规文本(如字母,文章等)的文字处理器。请注意,源代码不同,您需要使用编辑器。例如,我使用emacs,可以使用其他替代方案。一个(源代码)编辑器不会尝试用更有吸引力或大写单词的东西替换你输入的字符(我认为VoidInt等也是如此 - 这些必须是{{ 1}},void,...)

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

  

2.3字符集[lex.charset]

     

1 基本源字符集由96个字符组成:空格字符,代表水平制表符的控制字符,垂直制表符,换页符和换行符,以及以下91个图形字符: 14

     

int

     

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中描述)被指定为实现定义,因此需要一个实现来记录源文件中基本源字符的表示方式。 < / p>