scanf
是 C 語言中的一個函數,用于從標準輸入(通常是鍵盤)讀取數據并格式化。它非常靈活,可以處理多種格式的輸入。然而,C# 中沒有與 scanf
完全對應的函數。在 C# 中,處理輸入的主要方法是使用 Console.ReadLine()
或 Console.ReadKey()
方法讀取用戶輸入的字符串,然后使用 string.Split()
方法將字符串分割成多個部分,最后使用 int.Parse()
或 double.Parse()
等方法將字符串轉換為相應的數據類型。
如果你需要在 C# 中處理多種格式的輸入,你可以考慮使用正則表達式(Regex)來匹配不同的格式,并根據匹配結果執行相應的操作。例如,你可以使用正則表達式來匹配整數、浮點數、科學計數法等不同的數字格式。
下面是一個簡單的示例,展示了如何在 C# 中使用正則表達式處理多種格式的數字輸入:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
Console.WriteLine("請輸入一個整數、浮點數或科學計數法表示的數字:");
string input = Console.ReadLine();
// 匹配整數
int intValue;
if (int.TryParse(input, out intValue))
{
Console.WriteLine($"你輸入的整數是:{intValue}");
return;
}
// 匹配浮點數
double doubleValue;
if (double.TryParse(input, out doubleValue))
{
Console.WriteLine($"你輸入的浮點數是:{doubleValue}");
return;
}
// 匹配科學計數法表示的數字
string scientificValue = Regex.Replace(input, @"^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$", "");
double sciValue;
if (double.TryParse(scientificValue, out sciValue))
{
Console.WriteLine($"你輸入的科學計數法數字是:{sciValue}");
return;
}
Console.WriteLine("輸入的格式不正確。");
}
}
這個示例首先嘗試將用戶輸入的字符串解析為整數或浮點數。如果失敗,它將嘗試使用正則表達式去除科學計數法中的非數字字符,然后再次嘗試將字符串解析為浮點數。如果所有嘗試都失敗,它將輸出一條錯誤消息。