hello141219 2024-04-06 16:43 采纳率: 14.3%
浏览 3

C++程序报错,有没有人来帮帮我?

我今天用c++做了一个支付小程序,结果报错了,代码如下:

#include <iostream>
#include <fstream>
#include <string>
#include <vector>

struct User {
    std::string username;
    std::string password;
    double balance;
};

int main() {
    std::vector<User> users;
    std::string username, password;
    int choice;
    double amount;

    // 从文件中读取用户数据
    std::ifstream input("users.txt");
    while (input >> username >> password >> amount) {
        users.push_back({username, password, amount});
    }
    input.close();

    while (true) {
        std::cout << "1.注册 2.登录 3.退出\n请选择操作:";
        std::cin >> choice;

        if (choice == 1) {
            std::cout << "请输入用户名:";
            std::cin >> username;
            std::cout << "请输入密码:";
            std::cin >> password;
            users.push_back({username, password, 0});
            std::cout << "注册成功!";
        } else if (choice == 2) {
            std::cout << "请输入用户名:";
            std::cin >> username;
            std::cout << "请输入密码:";
            std::cin >> password;

            bool found = false;
            for (const auto& user : users) {
                if (user.username == username && user.password == password) {
                    found = true;
                    std::cout << "登录成功!";
                    while (true) {
                        std::cout << "1.充值 2.支付 3.查看余额 4.退出登录\n请选择操作:";
                        std::cin >> choice;

                        if (choice == 1) {
                            std::cout << "请输入充值金额:";
                            std::cin >> amount;
                            User.balance += amount;
                            std::cout << "充值成功!";
                        } else if (choice == 2) {
                            std::cout << "请输入支付金额:";
                            std::cin >> amount;
                            if (User.balance >= amount) {
                                User.balance -= amount;
                                std::cout << "支付成功!";
                            } else {
                                std::cout << "余额不足!";
                            }
                        } else if (choice == 3) {
                            std::cout << "当前余额:" << User.balance << std::endl;
                        } else if (choice == 4) {
                            break;
                        } else {
                            std::cout << "无效的选择,请重新输入!";
                        }
                    }
                    break;
                }
            }
            if (!found) {
                std::cout << "用户名或密码错误!";
            }
        } else if (choice == 3) {
            break;
        } else {
            std::cout << "无效的选择,请重新输入!";
        }
    }

    // 将用户数据写入文件
    std::ofstream output("users.txt");
    for (const auto& user : users) {
        output << user.username << " " << user.password << " " << user.balance << std::endl;
    }
    output.close();

    return 0;
}


报错信息:

                C:\Users\cxy\Desktop\c++\支付小程序\index.cpp    In function 'int main()':
54    33    C:\Users\cxy\Desktop\c++\支付小程序\index.cpp    [Error] expected unqualified-id before '.' token
59    37    C:\Users\cxy\Desktop\c++\支付小程序\index.cpp    [Error] expected unqualified-id before '.' token
60    37    C:\Users\cxy\Desktop\c++\支付小程序\index.cpp    [Error] expected unqualified-id before '.' token
66    62    C:\Users\cxy\Desktop\c++\支付小程序\index.cpp    [Error] expected primary-expression before '.' token
  • 写回答

3条回答 默认 最新

  • 关注

    下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    首先看到报错信息:

    • 在函数main的第54、59、60和66行出现了“expected unqualified-id before '.' token”的错误;
    • 其中第66行同样出现了“expected primary-expression before '.' token”的错误。

    先看第一个错误,它的意思是“在‘.’标记之前期望未限定的id”。这个错误通常是由于使用了错误的标识符或未正确使用标识符而导致的。在这里,出现这个错误的代码中,有可能是由于使用了无效的标识符或拼写错误。可以尝试检查那几行的代码,看一下有没有上述问题。

    第二个错误,它的意思是“在‘.’标记之前期望基本表达式”。这个错误通常是由于在程序语法上遇到问题而引起的。在这里,出现这个错误的代码中,有可能是由于语法错误或使用了未定义的对象而导致。可以尝试检查哪一行的代码,看一下有没有上述问题。

    因此,针对这些错误,可以考虑以下解决方案:

    • 先仔细检查那几行代码的标识符是否正确、拼写是否正确;
    • 如果仍旧无法解决,可以检查程序语法是否正确,是否存在语法错误;
    • 针对第66行的错误,可以先检查一下是否存在未定义的对象;
    • 检查一下代码中是否有其他错误,例如未正确声明对象等。

    关于代码的修改,需要先根据目前提供的信息,再进行必要的修改。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月6日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表