zoukankan      html  css  js  c++  java
  • console.read()读入的内容

      今天写的特别简单的代码,大体是一个模式选择,从控制台读入一个数,然后做出相应的选择.

      代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 贴吧发帖统计
    {
        class Program
        {
            static void Main(string[] args)
            {
                
                while (true)
                {
                    int model = 0;
                    _put("model:");
                    model = Console.Read();
                    //_put(model.ToString());
                    if (model < 48 || model > 57) 
                        continue;
    
                    switch (model)
                    {
                        case 1: _put(model.ToString()); break;
                        default: _put(model.ToString()); break;
                    }
                }           
            }
    
            static void _put(string s)
            {
                Console.WriteLine(s);
            }
    
    
        }
    }

      然后每次读入一个model,都会输出一个数和另外两个"model:",百思不得其解,如下图:

      

      逐行调试,发现model每次都会多两个值"0x0000000d"和"0x0000000a",16进制的13跟10,一个是回车符,一个是换行符.

      

      

      从网上看了一些关于换行符(" ",值为10)跟回车符(" ",值为13)的概念.

      Unix 系统里,每行结尾只有“<换行>”,即“ ”;Windows系统里面,每行结尾是“ <回车><换 行>”,即“ ”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打 开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号.

      但是,使用console.readLine()函数,就可以避免读入"回车符"跟"换行符".

  • 相关阅读:
    [Lydsy1706月赛]大根堆
    某考试 T1 Function
    [SHOI2016] 随机序列
    某考试 T1 至危警告
    某考试 T2 yja
    bzoj1880 [Sdoi2009]Elaxia的路线
    bzoj1804 [Ioi2007]Flood 洪水
    bzoj4546 codechef XRQRS
    bzoj4547 小奇的集合
    bzoj1443 [JSOI2009]游戏Game
  • 原文地址:https://www.cnblogs.com/Fadinglemon/p/3702489.html
Copyright © 2011-2022 走看看