|
1鱼币
下面STU *stu=new STU[n]建立空间后
for(int a=0;a<n;a++)
in>>stu[a].num>>stu[a].subject;
cin>>num;
for(int i=0;a<n;i++)
if(num == stu[i].num)
cout<<"学号:"<<stu[i].num<<endl<<"科目:"<<stu[i].subject<<endl;
却显示不出来?
求解
-----------------------------------------------------------------代码----------------------------------------------------------
#include<iostream>
#include <fstream>
#include <string>
#include <string.h>
using namespace std;
typedef struct STU
{
int num;
string subject;
}STU;
void main()
{
//向文本文件中插入数据,我已经在文本中插入
/*
txt中:123 张三
456
789 李四
就是456的姓名是空的,然后我要用456去登陆,然后让指针指到456后面去,再为456添加姓名
*/
string number;
string name;
ofstream outstuf ;
outstuf.open( "test.txt" , ios::app|ios::binary ) ;
if ( !outstuf )
{ cerr << "文件不存在" << endl ; abort(); }
cin>>number;
number=number+" ";
cin>>name;
outstuf.seekp(0,ios::end);
outstuf<<number.c_str();
outstuf<<name.c_str()<<"\r\n";
outstuf.close();
//检测文本的行数
int num;
ifstream in("test.txt",ios::in);
string line;
int n;
while(getline(in,line))
{ n++;}
n=n-1;
//建立空间,这里貌似也有点问题,不知道为什么下面的cout的内容显示不出来,能顺便看下么
STU *stu=new STU[n];
for(int a=0;a<n;a++)
in>>stu[a].num>>stu[a].subject;
cin>>num;
for(int i=0;a<n;i++)
if(num == stu[i].num)
cout<<"学号:"<<stu[i].num<<endl<<"科目:"<<stu[i].subject<<endl;
delete []stu;
|
|