在C#中,使用Scanf
函數可以提高效率的方法如下:
StringBuilder
來存儲輸入的字符串,這樣可以避免頻繁的內存分配和釋放操作。StringBuilder sb = new StringBuilder();
int num;
while (scanf("%d", &num) == 1)
{
sb.Append(num).Append(" ");
}
List<T>
來存儲輸入的數據,這樣可以避免頻繁的內存分配和釋放操作。List<int> numbers = new List<int>();
int num;
while (scanf("%d", &num) == 1)
{
numbers.Add(num);
}
Span<T>
來存儲輸入的數據,這樣可以避免頻繁的內存分配和釋放操作。Span<int> numbers = new int[100];
int num;
while (scanf("%d", &num) == 1 && numbers.Length > 0)
{
numbers[numbers.Length - 1] = num;
numbers = numbers.Slice(0, numbers.Length - 1);
}
BufferReader
來讀取輸入的數據,這樣可以避免頻繁的內存分配和釋放操作。using System.Buffers;
BufferReader reader = new BufferReader();
int num;
while (reader.Read(out num) && num != -1)
{
Console.Write(num + " ");
}
List<char>
來存儲輸入的字符串,這樣可以避免頻繁的內存分配和釋放操作。List<char> chars = new List<char>();
int num;
while (scanf("%d", &num) == 1)
{
chars.Clear();
foreach (char c in num.ToString())
{
chars.Add(c);
}
foreach (char c in chars)
{
Console.Write(c);
}
Console.WriteLine();
}
請注意,Scanf
函數在C#中并不是最佳選擇,因為它無法很好地處理空格、制表符和換行符。在這些情況下,建議使用Console.ReadLine()
方法。