-5

我的文本文件包含以下信息

   Names                     Date Of Birth        Date Of Joining   
   Bella Swan                01/18/1986           12/12/2012
   Edward Cullen             10/13/1983           05/08/2013
   Jacob Black               10/18/1981           12/12/2012
   Carlisle Cullen           05/08/1953           12/16/1998
   Alice Cullen              01/18/1986           09/09/2009

如果用户输入一个日期,所有与该日期相关的记录都应该被拉出。用户输入日期 01/18/1986 显示屏显示以下详细信息:

      Bella Swan                01/18/1986           12/12/2012
      Alice Cullen              01/18/1986           09/09/2009

如果用户输入日期 12/12/2012

       Bella Swan                01/18/1986           12/12/2012
       Jacob Black               10/18/1981           12/12/2012

我需要遵守的准则是不要使用锯齿状数组、linq、List、Exception 等。

我不知道如何获得上述输出。我试过这个,但没有用。

static void Main()
{
    Console.WriteLine("Enter The Date");
    string Date = Console.ReadLine();
    string line = null;
    FileStream fs = new FileStream("Scheduler.txt", FileMode.Open,FileAccess.Read);
    StreamReader reader = new StreamReader(fs);
    {
        while ((line = reader.ReadLine()) != null)
        {
            if (line.Contains(Date))
            {   
                Console.WriteLine(Date);
                break; // then stop
            }
        }
    }
}  
4

1 回答 1

3

你为什么做这个?

Console.WriteLine(Date);

您需要打印整行:

Console.WriteLine(line);

你为什么做这个?

break; // then stop

您在阅读整个文件之前就过早地停止了;删除它,以便继续循环直到到达文件末尾。

其他可能的问题:您是否检查以确保您的输入实际上是有效日期?一种方法是这样的:

DateTime valid; 
if(!DateTime.TryParse(Date, "MM/dd/YYYY", CultureInfo.InvariantCulture)) {
    // handle invalid date format
}

除此之外,这实际上是一个很好的开始。你的方法是正确的。

但是,您的问题提出的非常糟糕。下一次,陈述你遇到的实际、具体的问题。您甚至可能会发现阐明问题将帮助您更好地理解自己的代码,这样您就可以自己发现错误。例如,如果您说过:

我有这段代码,但它只打印用户输入的日期然后停止....

可能已经查看了您的代码并想知道为什么会这样。然后你可能已经注意到你已经Console.WriteLine(Date)走了一个哈!也许,只是也许,对于break.

于 2013-08-09T21:23:28.307 回答