#include <iostream>
#include<vector>
#include<fstream>
#include<stdio.h>
#include<string>
using namespace std;
struct file {
int protect[2]; //設定三位的安全碼-r-w-x
string filename;
int length;
string content;
};
struct User {
string ID;
vector<file> filenode;
};
vector<User> userlist;
void initiate() {
fstream infile;
infile.open("data.txt");
int n;
file temp2;
while (!infile.eof()){
User temp;
infile >> temp.ID;
infile >> n;
userlist.push_back(temp);
for (int i = 0; i < n; i++) {
infile >> temp2.protect[0];
infile >> temp2.protect[1];
infile >> temp2.protect[2];
infile >> temp2.filename;
infile >> temp2.length;
infile >>temp2.content;
userlist[userlist.size()-1].filenode.push_back(temp2);
}
}
infile.close();
}
int main()
{
initiate();
printf("User list are bellow:");
for (int i = 0; i < userlist.size(); i++) {
cout <<endl<< userlist[i].ID;
}
}
--------------------------------------data.txt--------------------------------------------
Peter
1
1
1
1
happy
5
nihao
Mike
1
1
1
1
angry
5
lihai
Bird
1
1
1
1
hello
4
haha
uj5u.com熱心網友回復:
userlist.push_back(temp);userlist存的是temp的拷貝
你要么把for回圈放到push_back之前,要么userlist里存放User *指標型別
還有你這排版看得想死,建議貼代碼使用代碼塊插入
uj5u.com熱心網友回復:
可我for回圈里是直接呼叫的變數,不是之前創建的temp了啊,排版好像是復制過來就這樣了不好意思[face]monkey2:006.png[/face]轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/250780.html
標籤:C++ 語言
