0

我正在从 C 入门中学习 C++。我被困在这个问题的最后一部分(1.6(第 25 页))

练习第 2.6.2 节练习 2.41:使用您的 Sales_data 类重写第 1.5.1 节(第 22 页)、第 1.5.2 节 >(第 24 页)和第 1.6 节(第 25 页)中的练习。现在,您应该在同一个文件中定义您的 Sales_data 类 > 作为您的主函数。

#include <iostream>
#include <string>

struct Sales_data 
{
    std::string Book_Name;
    unsigned Units_Sold = 0;
    double Revenue = 0.0;
};

int main()
{
    double price;
    Sales_data total;  // variable to hold data for the next transaction // read the first transaction and ensure that there are data to process
    if (std::cin >> total.Book_Name >> total.Units_Sold >> price) 
    {
        total.Revenue = total.Units_Sold * price;
        Sales_data trans; // variable to hold the running sum // read and process the remaining transactions
        while (std::cin >> trans.Book_Name >> trans.Units_Sold >> price) 
        {
            trans.Revenue = trans.Units_Sold*price;
            // if we're still processing the same book
            if (total.Book_Name == trans.Book_Name)
            {
                total.Units_Sold += trans.Units_Sold; // update the running 
                total.Revenue += trans.Revenue; // update the running 
            }
            else 
            {
            std::cout << total.Book_Name << total.Units_Sold << total.Revenue;
            **total.Book_Name = trans.Book_Name;**
            total.Units_Sold = trans.Units_Sold;
            **total.Revenue = trans.Revenue;**
            }
            **std::cout << total.Book_Name << total.Units_Sold << price << std::endl;** //print the last transaction 
        }
    }
    else 
    {
        // no input! warn the user
        std::cerr << "No data?!" << std::endl; 
        return -1; // indicate failure
    }
    return 0; 
}

哪里有** Xcode一直告诉我预期的表达..我不知道出了什么问题请帮助...

4

2 回答 2

2

根据您对我的评论的回复,当您从电子书中复制一些代码时,您引入了一些奇怪的字符。当我复制并编译程序时,gcc我收到如下错误(此处为实时示例):

error: stray ‘\357’ in program

\357是一个八进制转义序列。删除这些字符后,程序可以正常编译。

于 2013-10-18T15:58:29.917 回答
0

添加到 Shafik Yaghmours 的答案。

我复制的一些代码需要我重新输入float这个词!

常量浮点 TEMPCOMP = ( 200 + (dT2 * (c6+100) >> 11) ) / 10;

我无法复制和粘贴以显示它的外观..因为当我在这里通过时,两条线(之前和之后)看起来都一样。

但是在编辑器(Arduino)中……您可以清楚地看到不同之处。float 的 f 和 l 感人!

实际上它是一个 Unicode 字符 'LATIN SMALL LIGATURE FL' (U+FB02)
FileFormat.info

于 2019-10-02T23:44:01.497 回答