小平查密码
时间: 1ms 内存:128M
描述:
小平在五一期间趁学弟不在,每天在实验室过度看视(电)频(影),患了健忘症,以前的很多事情都记不起来了。但小平以前有个习惯,总喜欢把自己在各种系统的密码记录在一个文本文件ping.dic中,文件内容包含每个系统的名称,用户名和密码。
文件包含若干行,前3行的信息如下,
ytoj 201358503114 xiaop
163 xiaoping movie
qq 944051010 Smallping
现请帮助小平编程实现查询指定系统的用户名和密码。
输入:
要查询的系统名称
输出:
输出对应系统的用户名和密码,如果没有所要查询的系统,不需要输出任何信息。
示例输入:
qq
示例输出:
user 944051010
password Smallping
提示:
参考答案(内存最优[1088]):
#include<stdio.h>
#include<string.h>
struct student
{
char name[20];
char use[20];
char mima[20];
};
int main()
{
struct student std[100];
FILE *fp;
int i=0;
char n[20];
fp=fopen("ping.dic","r");
while(i<=99)
{
fscanf(fp,"%s%s%s",std[i].name,std[i].use,std[i].mima);
i++;
}
fclose(fp);
scanf("%s",n);
for(i=0;i<=99;i++)
{
if(strcmp(std[i].name,n)==0)
printf("user %s\npassword %s\n",std[i].use,std[i].mima);
}
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
struct System
{
char sysname[80];
char username[80];
char password[80];
};
int main()
{
ifstream infile("ping.dic",ios::in);
if(!infile)
{
cerr<<"open error!"<<endl;
return -1;
}
char sysname[80];
System sys;
cin>>sysname;
while(!infile.eof())
{
infile>>sys.sysname>>sys.username>>sys.password;
if(!infile.eof())
{
if(strcmp(sysname,sys.sysname)==0)
{
cout<<"user "<<sys.username<<endl;
cout<<"password "<<sys.password<<endl;
break;
}
}
}
infile.close();
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。