这个c#程序在运行时总是提醒输入字符串的格式不正确。众位,帮帮忙!在线等待。
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespa...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
String StrA = Console.ReadLine();
String StrB = Console.ReadLine();
String StrC = "";
StrC =Convert.ToString (Convert.ToInt32(StrA)+Convert.ToInt32( StrB));
Console.Write(StrC);
}
}
} 展开
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
String StrA = Console.ReadLine();
String StrB = Console.ReadLine();
String StrC = "";
StrC =Convert.ToString (Convert.ToInt32(StrA)+Convert.ToInt32( StrB));
Console.Write(StrC);
}
}
} 展开
6个回答
展开全部
来晚了,没看到,呵呵!几位回答的都不错,但他们就是不肯教你!
你查一下Convert.ToInt32()方法就会明白的!他有很多的重载方法,其中一个是ToInt32(string value)的方法,在这里其value参数必须是0-9这样的字符,比如你输入的是"129"即可以认识的!但如果不是,那么可能会出现的一个溢出是FormatExpression,也就是所谓的字符格式不正确。显然,你不能输入例如a之类的字母字符的,这里只能对数字这种形式的字符进行转换,不可能达到其他的效果的!所以不能输入例如abc之类的东西的。
你查一下Convert.ToInt32()方法就会明白的!他有很多的重载方法,其中一个是ToInt32(string value)的方法,在这里其value参数必须是0-9这样的字符,比如你输入的是"129"即可以认识的!但如果不是,那么可能会出现的一个溢出是FormatExpression,也就是所谓的字符格式不正确。显然,你不能输入例如a之类的字母字符的,这里只能对数字这种形式的字符进行转换,不可能达到其他的效果的!所以不能输入例如abc之类的东西的。
展开全部
可以通过try catch来判断
String StrA = Console.ReadLine();
int a = 0;
try{
a = int.prase(strA);
} catch (Exception e) {
Console.Writeln("A 格式错误");
return;
}
同样判断strB
String StrA = Console.ReadLine();
int a = 0;
try{
a = int.prase(strA);
} catch (Exception e) {
Console.Writeln("A 格式错误");
return;
}
同样判断strB
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
StrC =Convert.ToString (Convert.ToInt32(StrA)+Convert.ToInt32( StrB));你如果输入多个字符串,那么这个肯定会出错啊,看看是否是此次出问题吧!
追问
非常感谢。按你说的,应该输入一个字符串。但是我每次就输入一个字符串,可是问题还是存在。f5执行之后,分别输入两个字符串(例如abc,cde),这时候系统会提示“输入字符串格式不正确”。
追答
看清楚我的回答,StrC =Convert.ToString (Convert.ToInt32(StrA)+Convert.ToInt32( StrB));你如果输入多个字符串,那么这个肯定会出错啊,看看是否是此次出问题吧!
你只能输入一个字符的字符串才可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
出这们错是因为你输入的不是数字类型的值
追问
但是我定义的是字符串类型,我觉得输数字类型有点儿想不通。
追答
Convert.ToInt32(StrA)这个方法的参数要能转换成数字,你输入abc他能转换成数字吗?你输入123就不会有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Convert.ToInt32()是将字符串转变成数字返回,参数给字符肯定会出错,而且为了保险有时候在输入字符串的后面再加一个trim多余的空格去掉:string.trim()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个没有什么想不通的,当StrA或者StrB 的值不是一个合法的数字形式就会出错
比如StrA = "aaa" ,让你把"aaa"转成数字你怎么转呢?
所以你可以先判断一下StrA是否是合法的数字形式的值
比如
int IntA; //声明第一个数字变量
while (true)//一直循环到遇到break;才跳出
{
String StrA = Console.ReadLine();//接受用户输入
try
{
IntA = Convert.ToInt32(StrA);//对StrA进行转型,如果出错则跳转到catch 语块
break; //如果转型成功,则break;跳出循环
}
catch
{
Console.WriteLine("输入字符格式错误,请重新输入");//输入用户提示,并转到while开始,继续等待用户输入
}
}
int IntB;//声明第二个数字变量
while (true)
{
String StrB = Console.ReadLine();
if (int.TryParse(StrB,out IntB)) //第二种转型方式,效率最高
{
break; //如果成功,返回true
}
Console.WriteLine("输入字符格式错误,请重新输入");//输入用户提示,并转到while开始,继续等待用户输入
}
String StrC = (IntA + IntB).ToString();
Console.Write(StrC);
比如StrA = "aaa" ,让你把"aaa"转成数字你怎么转呢?
所以你可以先判断一下StrA是否是合法的数字形式的值
比如
int IntA; //声明第一个数字变量
while (true)//一直循环到遇到break;才跳出
{
String StrA = Console.ReadLine();//接受用户输入
try
{
IntA = Convert.ToInt32(StrA);//对StrA进行转型,如果出错则跳转到catch 语块
break; //如果转型成功,则break;跳出循环
}
catch
{
Console.WriteLine("输入字符格式错误,请重新输入");//输入用户提示,并转到while开始,继续等待用户输入
}
}
int IntB;//声明第二个数字变量
while (true)
{
String StrB = Console.ReadLine();
if (int.TryParse(StrB,out IntB)) //第二种转型方式,效率最高
{
break; //如果成功,返回true
}
Console.WriteLine("输入字符格式错误,请重新输入");//输入用户提示,并转到while开始,继续等待用户输入
}
String StrC = (IntA + IntB).ToString();
Console.Write(StrC);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询