C#中的控制台读取一行字符串
题目是这样的:定义一个数组,用for循环顺序输入七个数,然后逆序打印以下是代码:int[]array=newint[7];for(inti=0;i<array.Lengt...
题目是这样的:定义一个数组,用for循环顺序输入七个数,然后逆序打印
以下是代码:
int[] array = new int[7];
for (int i = 0; i < array.Length; i++)
{
Console.Write("请输入第{0}个数:",i+1);
array[i] = int.Parse(Console.ReadLine());
Console.WriteLine();
}
Console.WriteLine();
for(int i=array.Length-1 ;i>=0; i--)
{
Console.Write("{0} ",array[i]);
}
Console.ReadKey();
我的问题就是:如何把“Console.Write("请输入第{0}个数:",i+1);”这行代码中要输入的数字和其他字符串分开?
我使用“array[i] = int.Parse(Console.ReadLine().Substring(8));”他会报错说不能大于字符串长度,可是字符串中的第八个字符不正好是要输入的字符串吗?
求解 谢谢
错了,应该是“array[i] = Convert.ToInt32(Console.ReadLine().Substring(8));” 展开
以下是代码:
int[] array = new int[7];
for (int i = 0; i < array.Length; i++)
{
Console.Write("请输入第{0}个数:",i+1);
array[i] = int.Parse(Console.ReadLine());
Console.WriteLine();
}
Console.WriteLine();
for(int i=array.Length-1 ;i>=0; i--)
{
Console.Write("{0} ",array[i]);
}
Console.ReadKey();
我的问题就是:如何把“Console.Write("请输入第{0}个数:",i+1);”这行代码中要输入的数字和其他字符串分开?
我使用“array[i] = int.Parse(Console.ReadLine().Substring(8));”他会报错说不能大于字符串长度,可是字符串中的第八个字符不正好是要输入的字符串吗?
求解 谢谢
错了,应该是“array[i] = Convert.ToInt32(Console.ReadLine().Substring(8));” 展开
1个回答
展开全部
首先,从控制台输入 ,使用 Console.ReadLine() 如果你要这样用,那么你输入的每个数是用什么分隔的呢? 好吧,只要不是用数字分隔,都好办啊。。比如,你使用的分隔符为空格,那么输入就应该为:
12 54 3245 12 211 33 4
这样的。在你使用Console.ReadLine() 读取到数据后,再使用Split函数将这个字符串分割成字符串数组:
string str = Console.ReadLine();
string sarr = str.Split(' ');
,分割后,再通过循环把字符串转换格式成数字类型:
int[] iarr = new int[sarr.Length];
for(int i=0;i<sarr.Length;i++)
{
iarr[i] = int.Parse(sarr[i]);
}
,现在就得到了数字类型的数组: iarr了,然后 就可以进行你后面的操作了。
另一种输入,也就是你代码中提到的,每个数字输入一行。你的代码是没有错误的。
Console.Write("请输入第{0}个数:",i+1);
这句代码只是用来提示输入的,跟输入的数据没有关系的。虽然在同一行,但是程序只会读取你手动输入的数据,不会去读取输出的内容。
更多追问追答
追问
我想的是这样:
执行“Console.Write("请输入第{0}个数:",i+1);”这段代码时,你输入一个数,然后控制台上的内容就变成了这样:“请输入第1个数:1”(假定我输入了1),然后我想就是把这个1和前面的字符串分开
追答
Console.ReadLine() 读取的时候只会读取 你输入的那个 1,前面的内容是不会读取到的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询