中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在C# 控制臺中一次性輸入多行

發布時間:2021-01-19 14:57:02 來源:億速云 閱讀:194 作者:Leah 欄目:開發技術

怎么在C# 控制臺中一次性輸入多行?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

1、使用StringBuilder存儲:按下q鍵時退出

StringBuilder sb = new StringBuilder();
 
while (true)
{
 string input = Console.ReadLine();
 if (input.Equals("q") == false) //如果輸入的不是q(區分大小寫),則增加記錄
  sb.AppendLine(input);
 else
  break; //如果該行僅僅輸入q,則結束輸入
}
 
Console.WriteLine("按輸入方式輸出(不會有最后的退出符號q,而是一個空行):");
Console.WriteLine(sb.ToString());
 
Console.WriteLine("輸入數據的長度:"); //回車占據兩個字符
Console.WriteLine(sb.Length); //結果說明數據是以字符形式存入StringBuilder中,回車為2個字符
 
Console.WriteLine("逐個輸出(不會有最后的退出q符號,而是一個空行):");
for (int i = 0; i < sb.Length; i++)
{
 Console.WriteLine(sb[i]); //為char類型
}
 
//依次輸出每一行和每個值
List<string> line = new List<string>();
int k = 0;
for (int i = 0; i < sb.Length - 1; i = i + 2) //當i為\r時,i+1是\n,下一次的循環是i+2開始
{
 string a = "";
 while (sb[i].ToString() + sb[i + 1].ToString() != "\r\n") //判斷當前字符和下一個字符是不是回車符\r\n
 {
  a = a + sb[i++].ToString(); //每行為一個字符串
 }
 line.Insert(k++, a); //將字符串依次存入鏈表
}
Console.WriteLine("依次輸出每行");
for (int i = 0; i < line.Count; i++)
{
 Console.WriteLine(line[i]);
}
Console.WriteLine("依次輸出每個值");
string[][] str = new string[line.Count][]; //交叉數組,行固定,為上面得到的行數,每一行的長度不定(每行字符間以空格或其他分割)
for (int i = 0; i < line.Count; i++)
{
 str[i] = line[i].Split(); //C#對空格的分割方式之一,如果是其他分割方式,就需要也使用上面的鏈表分割每行的方式了
}
for (int i = 0; i < line.Count; i++)
{
 for (int j = 0; j < str[i].Length; j++)
 {
  Console.WriteLine(str[i][j]);
 }
}
Console.ReadKey();

注意,輸入值后它是以char存在于StringBuilder中,回車占兩個char值。

怎么在C# 控制臺中一次性輸入多行

2、使用鏈表List存儲:按下q時退出

List<string> str = new List<string>();
int len = 0;
while (true)
{
 string input = Console.ReadLine();
 if (input.Equals("q") == false) //如果輸入的不是q(區分大小寫),則增加記錄
  str.Insert(len++, input);
 else
  break;
}
   
Console.WriteLine("輸出數據長度");
Console.WriteLine(len); //結果說明數據是按行存在鏈表中的,每行占鏈表一個值
Console.WriteLine("依次輸出鏈表中數據");
for (int i = 0; i < len; i++)
{
 Console.WriteLine(str[i]); //依次輸出鏈表每個值,也是依次輸出每行
}
Console.WriteLine("依次輸出每個值");
string[][] every = new string[len][]; //交叉數組,行固定,為上面得到的行數,每一行的長度不定(每行字符間以空格或其他分割)
for (int i = 0; i < len; i++)
{
 every[i] = str[i].Split(); //C#對空格的分割方式之一,如果是其他分割方式,就需要也使用上面的鏈表分割每行的方式了
}
for (int i = 0; i < len; i++)
{
 for (int j = 0; j < every[i].Length; j++)
 {
  Console.WriteLine(every[i][j]);
 }
}
Console.ReadKey();

怎么在C# 控制臺中一次性輸入多行

從上面兩個方法來看,第二個方法更方便對輸入數據取出操作。

補充:C語言一次性給多個變量賦值

我就廢話不多說了,大家還是直接看代碼吧~

scanf("%d%d%d",a,b,c);

而不是

scanf("%d,%d,%d",a,b,c);

這里要注意那里是沒有逗號的

關于怎么在C# 控制臺中一次性輸入多行問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上饶市| 子长县| 信阳市| 赤峰市| 襄城县| 龙州县| 道孚县| 舟曲县| 曲沃县| 西乡县| 色达县| 湘潭县| 舟山市| 图木舒克市| 萨嘎县| 日照市| 环江| 乐至县| 金坛市| 临泽县| 宜都市| 澎湖县| 泌阳县| 海口市| 泊头市| 桦川县| 巴青县| 昭苏县| 潞城市| 京山县| 左云县| 崇信县| 雷州市| 洪江市| 海城市| 赤城县| 屯门区| 蕲春县| 方正县| 阿图什市| 平顶山市|