gpt4 book ai didi

c++ - 根据 roll no.s 将 intime/outtime 存储在一个文件中

转载 作者:太空宇宙 更新时间:2023-11-04 13:27:16 24 4
gpt4 key购买 nike

我被要求编写一个程序,要求用户的 rollno 让学生先进去,然后保持 InTime 固定,只通过在给定范围内多次询问学生的 rollno 来更改 outTime用户希望将它们发送出去。这是我写的代码:

#include<iostream.h>
#include<fstream.h>
#include<time.h>
int main()
{
char *intime[10],*outtime[10],d='\0';
int rollno[10]={10,4,1,5,6,2,3,7,9,8},i,c;
time_t obj;
time(&obj);
struct tm* t;
t=localtime(&obj);

ofstream f;

f.open("fit.txt");

cout<<"Enter your roll no to go in.\n";

cin>>c;


intime[c]=asctime(t);
cout<<"Enter your roll no to go out.\n";

cin>>c;
while(c>=1 && c<=10)
{



outtime[c]=asctime(t);
}

f<<rollno[c]<<" "<<intime[c]<<" "<<outtime[c]<<endl;


f.close();
ifstream t1;
t1.open("fit.txt");
for(i=0;i<10;i++)
{

cout<<" "<<rollno[i]<<" "<<intime[i]<<" "<<outtime[i]<<endl; }

t1.close();
return 0;
}

问题是,由于我无法更新 intime 和 outtime 除了请求的那些之外,我正在获取垃圾值.. 需要帮助。

更新:这是我想出的最终代码,它没有给出任何垃圾值,而是给出了不同的 intime 和 outtime 值,请随时提出进一步改进的建议

#include<iostream.h>
#include<fstream.h>
#include<time.h>
int main()
{

int i,j;char *intime[10],*outtime[10],it[10],ot[10];

for(i =1;i<=10;i++)
{
intime[i]="0";
outtime[i]="0";
}
int rollno[10]={10,4,1,5,6,2,3,7,9,8},c;
time_t obj,obj1;
time(&obj);

struct tm* t;
struct tm* u;

t=gmtime(&obj);


ofstream f;

f.open("fit.txt");

cout<<"Enter your roll no to go in.\n";

cin>>c;

for(i=1;i<=10;i++)
if(rollno[i]==c)

{strftime(it,10,"%I:%M:%S",t);
intime[i]=it;}


cout<<"Enter your roll no to go out.\n";

cin>>c;
time(&obj);

u=gmtime(&obj);

for(j=1;j<=10;j++)
if(rollno[j]==c)
{
if(intime[j]!="0")

{ strftime(ot,10,"%I:%M:%S",u);
outtime[j]=ot;}
}




f.close();
ifstream t1;
t1.open("fit.txt");

for(i=1;i<=10;i++)

cout<<" "<<rollno[i]<<" "<<intime[i]<<" "<<outtime[i]<<endl;


t1.close();
return 0;
}

最佳答案

您需要在创建intimeoutime 数组后立即对其进行初始化。有点像

std::memset(intime, 0, sizeof(intime));

应该适合你。

您在使用 asctime 函数时也遇到了问题。它返回一个静态字符串的地址,该地址将在每次调用 asctime 后被覆盖。您需要自己分配存储空间并复制返回的字符串。

关于c++ - 根据 roll no.s 将 intime/outtime 存储在一个文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32935572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com