温馨提示×

c# scanf能自定义格式吗

c#
小樊
82
2024-10-18 12:28:24
栏目: 编程语言

在C#中,Console.ReadLine()方法通常用于从控制台读取用户输入的一行文本。然而,Console.ReadLine()并不直接支持类似C语言中scanf的自定义格式化输入功能。

如果你需要从控制台读取特定格式的输入,你可能需要使用正则表达式或手动解析输入字符串。下面是一个简单的示例,展示了如何使用正则表达式来读取一个包含多个整数的行,并按照指定的顺序存储这些整数:

using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        Console.WriteLine("请输入一组整数,用空格分隔:");
        string input = Console.ReadLine();

        // 使用正则表达式匹配所有整数
        Regex regex = new Regex(@"-?\d+");
        MatchCollection matches = regex.Matches(input);

        // 创建一个列表来存储整数
        List<int> numbers = new List<int>();

        // 遍历所有匹配项,并将它们转换为整数并添加到列表中
        foreach (Match match in matches)
        {
            numbers.Add(int.Parse(match.Value));
        }

        // 输出读取到的整数
        Console.WriteLine("读取到的整数:");
        foreach (int number in numbers)
        {
            Console.Write(number + " ");
        }
    }
}

在这个示例中,我们首先提示用户输入一组用空格分隔的整数。然后,我们使用正则表达式-?\d+来匹配所有整数(包括负数)。接下来,我们遍历所有匹配项,并将它们转换为整数并添加到一个列表中。最后,我们输出读取到的整数。

请注意,这个示例仅用于演示目的,并且假设用户输入的是有效的整数。在实际应用中,你可能需要添加额外的错误处理和验证逻辑来确保程序的健壮性。

0