蓝礼 2018-12-01 08:07 采纳率: 0%
浏览 1702

(急求大佬们的帮助)C++ 如何把文件中的数据写进vector再传给类

(C++ 如何把文件(文件一行存的是一个类对象的数据)中的数据读出存入到vector容器中,再传给一个临时类对象,或者有更好的方法?我是小白,有C和Python的一点基础
取出数据之后还可以修改再传进文件中,我想做的是银行管理系统,要做登录,存取款,转账,现在是被文件的读取给难住了,望大佬们指点.最好有点关键代码,谢谢qwq

  • 写回答

1条回答 默认 最新

  • Symbol Sir 2018-12-01 12:48
    关注

    文件内容:
    1,first,100
    2,second,95
    3,third,59

    // FileOperation.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    
    
    #include <fstream>
    #include <vector>
    using namespace std;
    class student {
    public:
        int nNo;
        string strName;
        int nScore;
    };
    
    int main(int argc, char **argv)
    {
        vector<string> fileLines;
        fstream file("fstream.txt", ios::in );
        if (!file.bad())
        {
            file.clear();
            file.seekg(0, ios::beg);
            while (!file.eof())
            {
                char szLine[1024] = { 0 };
                file.getline(szLine, 1024);
                fileLines.push_back(szLine);
            }
        }
    
        vector<student> vecstudent;
        const char ch = ',';
        char szLine[1024] = { 0 };
        for (auto &it: fileLines)
        {
            if (!it.empty())
            {
                strcpy_s(szLine, 1024, it.c_str());
                student studenobj;
                char *next_token = NULL;
                char *token = strtok_s(szLine, &ch, &next_token);
                int index = 0;
                while (token != NULL) 
                {
                    if (index == 0)
                    {
                        studenobj.nNo = atoi(token);
                    }
                    else if (index == 1)
                    {
                        studenobj.strName = token;
                    }
                    else if (index == 2)
                    {
                        studenobj.nScore = atoi(token);
                        vecstudent.push_back(studenobj);
                        index = 0;
                    }
                    index++;
                    token = strtok_s(next_token, &ch, &next_token);
                }
            }
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题