小平查密码

时间: 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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。