中易网

c#输入语句

答案:5  悬赏:50  
解决时间 2021-02-20 08:58
程序代码如下:
static void Main() { int a, b; Console.WriteLine("put a"); a = Console.Read(); Console.WriteLine("put b"); b = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("{0}", a); Console.WriteLine("{0}", b); }
运行时,a可以正常读入,但是b就报错了



最佳答案
Console.Read() 。输入流中的下一个字符;如果当前没有更多的字符可供读取,则为负一 (-1)。
Read()要在回车之后才开始处理,也就是说,在查询的时候,如果输入t,然后回车,实际上,输入了3个字符, 分别是字符x、回车(13)、换行(10)。当然会出错了。
写法如下图:




控制台输入输出:
输出:
1、System.Console.WriteLine("Hello World!");
2、using System;Console.WriteLine("Hello World!")。
输入:
1、System.Console.ReadLine();/读取一行字符。
2、 System.Console.Read();/读取一个字符。
控制台输入:
System.Console类的Read()和ReadLine0方法可用来实现控制台输入,详细介绍如何使用这两种方法获取输入:
1、Console.Read)方法
ReadO方法每次从输入流(控制台)中读取一个字符,直到收到Enter键才返回。将接收的字符以int型(32位整数)值返回给变量;如果输入流中没有数据,则返回-1。
ReadO方法是一个静态方法,我们可以直接通过类名Console调用它,调用的格式为Console.Read。ReadO方法的原型为:public static int Read()。
如果我们输入了多个字符,然后按Enter键(此时输入流中将包含用户输入的字符,加上Enter键和换行符\r\n'),则Read()方法只返回用户输入的第一个字符。但我们可通过对程序的循环控制,多次调用Read()方法来获取所有输入的字符。
ReadO方法返回给变量的数据的类型是32位整数,如果需要得到输入的字符,则必须通过数据类型显式转换才可以得到相应的字符。
示例如下:



2、Console.ReadLine)方法
ReadLine)方法用于从控制台中一次读取一行字符串,直到遇到Enter键才返回读取的字符串。但此字符串中不包含Enter键和换行符(\r\n’)。如果没有收到任何输入,或接收了无效的输入,那么ReadLine)方法将返回null。
ReadLine)方法也是一个静态方法,可以直接通过类名Console来调用它,调用的格式为Console.ReadLine。
ReadLine)方法的原型为:public static string ReadLine)。
示例如下:



扩展资料:
字符串格式输出:
//public static void Main()
{
Console.WriteLine("在宽度为的空间里靠左对齐:{0,-10}",99);
Console.WriteLine("在宽度为的空间里靠右对齐:{0,10]}",99);
Console.WriteLine("在宽度为的空间里靠左对齐:{0,-10}","LLL");
Console.WriteLine("在宽度为的空间里靠右对齐:{0,10}","RRR");
Console.WriteLine("货币-{0:C}{1:C4}",88.8,-888.8);
Console.WriteLine("10进制整数-{0:D5}",88);
Console.WriteLine("科学计数-{0:E}",888.8);
Console.WriteLine("固定小数点-{0:F3}",888.8888);
Console.WriteLine("浮点数-{0:G}",888.8888);
Console.WriteLine("数字格式-{0:N}",8888888.8);
Console.WriteLine("16进制格式-{0:X4]}",88);Console.ReadLine);
}
格式化说明符:



参考资料:搜狗百科-c#
全部回答
static void Main() { int a, b; Console.WriteLine("put a"); a = Console.Read(); Console.WriteLine("put b"); b = Convert.ToInt32(Console.Read()); Console.WriteLine("{0}", a); Console.WriteLine("{0}", b); Console.Read(); } Convert.ToInt32(Console.ReadLine())转换的时候报错, Console.ReadLine()是带有换行符的”/n“怎么能够转换成int呢 所以问题就是出在这里的。
很明显是输入的b不能转换为int类型,所以异常了,你可以这样写 static void Main() { int a, b; Console.WriteLine("put a"); a = Console.Read(); Console.WriteLine("put b"); b = GetB(); Console.WriteLine("{0}", a); Console.WriteLine("{0}", b); } static int GetB() { try { return Convert.ToInt32(Console.ReadLine()); } catch { Console.WriteLine("输入b的值错误,请重新输入:"); return GetB(); } }
因为你输入的是字母,字母转化为int类型就会报错误, 避免异常,你可以用try catch的形式或者 static void main()         {             int a, b;             console.writeline("put a");             a = console.read();             console.writeline("put b");             //这句代码是尝试将输入的数据转化为整形             int.tryparse(console.read(), out b);             console.writeline("{0}", a);             console.writeline("{0}", b);         }
Console.Read() 。 输入流中的下一个字符;如果当前没有更多的字符可供读取,则为负一 (-1)。 Read()要在回车之后才开始处理,也就是说,在查询的时候,如果输入t,然后回车,实际上,输入了3个字符, 分别是字符x、回车(13)、换行(10)。当然会出错了。 应该这样写 using System; using System.Collections.Generic; using System.Text; namespace 控制台输入 {     class Program     {         static void Main(string[] args)         {             int a, b;             Console.WriteLine("put a");             a = Convert.ToInt32(Console.ReadLine());             Console.WriteLine("put b");             b = Convert.ToInt32(Console.ReadLine());             Console.WriteLine("{0}", a);             Console.WriteLine("{0}", b);             Console.ReadLine();         }     } }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
丹尼斯全日鲜同乐店地址在什么地方,想过去办
南京值得玩的地方 不要那些什么雨花台中山陵
请问QQ音乐的歌曲为什么有时候会连不上啊?
我喜欢一个男生,有几年了。但没有表白过,我
济南市哪有匡威专卖店??
大连有做冻干机的吗
小芳面馆在什么地方啊,我要过去处理事情
关于3ds max的问题,有一面是黑色的
做什么汽车配件比较赚钱
百亿道/S311(路口)怎么去啊,有知道地址的么
成都最大的学生文具批发商是哪家
高通骁龙400,1.2gcpu和1.6gcpu有什么区别
9.5雅阁磨合期内能用s档不
东华镇我想知道这个在什么地方
GHOST应该怎么用?
推荐资讯
美国国际空间站每段时间要送上去的物资,和应
乳腺的意思是什么?乳腺的释义是什么啊?
wap.wxcs.cn.xxt我是清远东城中心小学二年级
米兰国际婚纱摄影地址在什么地方,想过去办事
从南通到泰兴车站乘汽车要几个小时?
求一篇5分钟的演讲稿(题为:加强沟通,共创
参与全国3D比赛的院校有多少?人数有多少?最
兴中电器五金商行地址在什么地方,想过去办事
oppor7红屏怎么回事
病假期间公司有权解除劳动合同吗
挂号信开身份证明的时候要去居委会还是街道办
壹品砂锅麻辣烫牛街店怎么去啊,有知道地址的
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?