//转化为二进制
public static void ER()
{
Console.WriteLine("-----当前是十进制转换二进制\n十进制数:");
int shi = Convert.ToInt32(Console.Read());
Stack stAckER = new Stack();
while (shi != 0)
{
int m = shi % 2;
shi = shi / 2;
stAckER.Push(m);
}
Console.Write("二进制为:");
foreach (Object obj in stAckER )
Console.Write("{0}", obj);
Console.WriteLine("---- ");
} //转化为八进制
public static void BA()
{
Console.WriteLine("-----当前是十进制转换八进制\n输入十进制数:");
int shi = Convert.ToInt32(Console.Read());
Stack stAckER = new Stack();
while (shi != 0)
{
int m = shi % 8;
shi = shi /8;
stAckER.Push(m);
}
Console.Write("八进制为:");
foreach (Object obj in stAckER)
Console.Write("{0}", obj);
Console.WriteLine(" ");
} //转化为十六进制
public static void LIU()
{
Console.WriteLine("-----当前是十进制转换十六进制\n十进制数:");
int shi = Convert.ToInt32(Console.Read());
Stack stAckER = new Stack();
while (shi != 0)
{
int m = shi % 16;
shi = shi / 16;
stAckER.Push(m);
}
Console.Write("十六进制为:");
foreach (Object obj in stAckER)
Console.Write("{0}", obj);
Console.WriteLine(" ");
} //用switch选择函数
public static void sSwitch()
{
//--------------------------------------------------第二次循环到此就...
string checkk = Console.ReadLine(); switch (checkk)
{
case "1": ER(); break;//调用二进制
case "2": BA(); break;;//调用八进制
case "3": LIU(); break;;//调用十六进制
case "clr": Console.Clear(); Helpp(); break;
default:
{
Helpp();
break;
}
}
}
//用来提示的
public static void Helpp()
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("_____________________________________________________________");
Console.WriteLine(" 转化为二进制 输入1");
Console.WriteLine(" 转化为八进制 输入2");
Console.WriteLine(" 转化为十六进制 输入3");
Console.WriteLine("_____________________________________________________________");
}
//不断循环调用的
public static void zhu()
{
while (true)
{
sSwitch();
}
}//主函数
static void Main(string[] args)
{
Console.Title = "各种进制转换";
Console.ForegroundColor = ConsoleColor.Green;
Helpp();
zhu();
// Console.ReadLine();
}
/*
程序运行一次后回到那个while()循环中
public static void sSwitch()
{
//--------------------------------------------------第二次循环到此就...
string checkk = Console.ReadLine();到这里不会提示输入 直接checkk+=1 之后运行
问题好像跟静态有关 反正不知到怎么处理 这是最大的杯具另还有其他问题
1 在switch()中加一个输入0 就退出程序
2 这样不断的调用函数有什么副作用么?
其他的还有很多改进的地方 若你看到这里 请帮忙提出来(完全否定也可以) 谢谢
*/
读的是上次没读完的字符。改为ReadLine()就好了。1 在switch()中加一个输入0 就退出程序-> 做一个成员变量static bool isQuit = false;输入0的时候改为true,
While(true) 改为 While(!isQuit)就可以了。
另外LZ的变量名定义的真是有点惨不忍睹,多看看优秀代码,改进一下吧。Console要想运行就必须while true了,没有什么其他影响。