问题一:下面的C++代码换成C#代码该如何写(请考虑如果用户输出的不是数字的情况)。int n;
cin>>n;
问题二:下面的代码我输入1为什么输出49??怎么修改?using System;
class A
{
public int n;
public object o;
void Input()
{
n = Console.Read();
} public void Show()
{
Console.WriteLine("n = {0}", n);
} static void Main(string[] args)
{
A a = new A();
a.Input();
a.Show();
Console.Read();
}
}
cin>>n;
问题二:下面的代码我输入1为什么输出49??怎么修改?using System;
class A
{
public int n;
public object o;
void Input()
{
n = Console.Read();
} public void Show()
{
Console.WriteLine("n = {0}", n);
} static void Main(string[] args)
{
A a = new A();
a.Input();
a.Show();
Console.Read();
}
}
class A
{
public string n;
public object o;
void Input()
{
n = Console.ReadLine();
} public void Show()
{
Console.WriteLine("n = {0}", n);
} static void Main(string[] args)
{
A a = new A();
a.Input();
a.Show();
Console.Read();
}}
或者用 char 接收字符 Console.Read();
class A
{
public int n;
public object o;
void Input()
{
while(true){
n = Console.Read();
if (n < 58 && n > 47)
break;
//Console.WriteLine("please input number");
}
} public void Show()
{
Console.WriteLine("n = {0}", (char)n);
} static void Main(string[] args)
{
A a = new A();
a.Input();
a.Show();
Console.Read();
}}
Console.ReadLine();
至于如何来判断是否一个数字,两种方法:1.一个字符一个字符来进行判断,比较麻烦;2.使用正则表达式,这个更方便..问题二:
你输入的是字符"1",ASC码值是49,你用的是Int类型的变量来接收,故输出也是49..
{
class A
{
public int n; public void Input()
{
string str=Console.ReadLine();
while(!int.TryParse(str, out n))
{
Console.WriteLine("ERROR!!! Not a int!");
Console.Write("Input again: ");
str = Console.ReadLine();
}
} public void Show()
{
Console.WriteLine("RIGHT!!! n = {0}", n);
} static void Main(string[] args)
{
Console.Write("Please input a int:");
A a = new A();
a.Input();
a.Show();
Console.Read();
}
}}
这才是正解
int int.Parse(string)函数将字符串转化为整数,转化的值返回,如果string转换失败,则抛出异常
"C:\Documents and Settings\fang\桌面\JudgeInputV\JudgeInputV\Class1.cs(14): “int”并不包含对“TryParse”的定义"