平行จุ๊บ 2019-05-24 08:56 采纳率: 0%
浏览 463

在c#从控制台写入文件并读取,第一次的数据写进去再读出来之后。 为什么第二次写数据覆盖掉第一次的?

图片说明
#求大神解决
//文件路径
string fileName = @"D:\c#\workspace\myAssignment\chepiao2.txt";

        Console.WriteLine("\n\t简单客车售票系统" + "\n");
        string[,] zuo = new string[9, 4];
        for (int i = 0; i < 9; i++)
        {
            //Console.WriteLine();
            for (int j = 0; j < 4; j++)
            {
                zuo[i,j] = "【有票】";
                //Console.Write(zuo[i, j]);
            }
        }


        string s = string.Empty;//这个是标识退出或座位的。
       //读取文件中的数据           
        while (true)
        {

            using (StreamReader sr = new StreamReader(fileName))
            {
                //一次读取一行
                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    //读取到的数据输出到控制台
                    Console.WriteLine(line);

                }

            }

            Console.Write("请输入作为行号和列号(例如:0,2)按q退出!");

            s = Console.ReadLine();//读取输入的值。         
            if (s == "q") break;              
            try
            {
                string[] str = s.Split(',');//以逗号分隔。
                int one = int.Parse(str[0]);
                int two = int.Parse(str[1]);

                while (true) 
                {
                    if (one >= zuo.GetLength(0) || two < 0
                        || one >= zuo.GetLength(0) || two < 0)
                    {
                        Console.WriteLine("输入的座位号有误请重新输入");                        
                        break;
                    }
                    else if (zuo[one, two] == "【已售】" )
                    {

                        //zuo[one, two] = "【已售】";
                        Console.WriteLine("输入座位票已售出,请重新输入");

                       //zuo[one, two] = "【已售】";
                        break;
                    }
                    else
                    {
                        zuo[one, two] = "【已售】";
                        Console.WriteLine("售票成功!");
                        break;
                    }
                }
            }
            catch (Exception)
            {
                Console.WriteLine("异常错误!");
            }

            if (s != "q")
            {
                //将控制台的数据写到文件中去
                using (StreamWriter sw = new StreamWriter(fileName))
                {

                    for (int i = 0; i < 9; i++)
                    {
                        string str = " ";
                        for (int j = 0; j < 4; j++)
                        {
                            str += zuo[i, j] + ",";
                        }
                        sw.WriteLine(str);
                    }

                }
            }
            else
            {
                break;
            }
        }

        Console.ReadKey();

图片说明

  • 写回答

3条回答 默认 最新

  • 平行จุ๊บ 2019-05-24 08:59
    关注

    上次发布的可能问题描述的有点问题,试了还是没有效果,希望回答了的还可以再次回答下,拯救小白?图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置