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值。

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语言一次性给多个变量赋值

我就废话不多说了,大家还是直接看代码吧~

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

而不是

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

这里要注意那里是没有逗号的

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • C#实现一个控制台的点餐系统

    本文实例为大家分享了C#点餐系统的具体代码,供大家参考,具体内容如下 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 控制台操作尝试 { class Program { static void Main(string[] args) { int price = 0; Console.WriteL

  • C#编写控制台程序纸牌游戏

    本文实例为大家分享了C#编写纸牌游戏的具体代码,供大家参考,具体内容如下 using System; using System.Collections.Generic; using System.Text; using System.Threading; namespace ConsoleApplication2 { class Game { string[] str = new string[52]; int[] number = new int[52]; int i = 0; int[] a

  • 使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)

    一.VS的开发环境 首先你得安装了vs2019,然后确认下下面三个组件是否存在,如果没有要下载一下.vs2019的安装可参考visual studio2019的安装以及使用. 二.创建C#窗体应用程序 打开vs 可以直接在搜索框输入关键字进行搜索,选择 Windows 窗体应用(.NET Framework).如图. 也可以限定项目类型,所用的语言进行查找. 接下去狂点确定即可.当然可以选择改个项目存放存放的目录和项目名称. 创建好后,就进入到了这么一个界面. 在窗体右边(也可能是在左边.每个人

  • 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,则结束输入 } Consol

  • Java 输入多行字符串或者多个int数值的方法

    控制台输入 以下输入方法用于在控制台中进行输入,当输入当个换行符时,结束输入.但不适合在做算法题目是使用,可能是因为算法题目中用的是流的方式进行输入,最后不会输入多一个换行符,因而无法正确的结束输入而导致答案错误. import java.util.Scanner; public class Main { public static void main(String[] args) { inputStr(); inputInteger(); inputIntInLine(); } //每行输入一

  • C语言编程中统计输入的行数以及单词个数的方法

    统计输入的行数 标准库保证输入文本流以行序列的形式出现,每一行均以换行符结束.因此,统计行数等价于统计换行符的个数. #include <stdio.h> /* count lines in input */ main() { int c, nl; nl = 0; while ((c = getchar()) != EOF) if (c == '\n') ++nl; printf("%d\n", nl); } 在该程序中,while 循环语句的循环体是一个 if 语句,它控

  • C++实例输入多行数字到数组

     C++输入多行数字到数组 前天做某公司笔试题的时候,其输入格式是多行数字,每行以空格为分隔符,以换行符号为结束输入到多个数组.在JAVA中有相应的函数直接将一行拆成数组,感觉在C++中这中输入方式还是挺奇怪的,今天想出一种解决方式. 思路: 每次读入一个字符,判断是不是EOF,如果是的话跳出循环: 不是EOF将字符放回缓冲区: 读入换行符,说明一行结束,处理数组: 读入字符,如果不是空格,存入一个临时的字符串: 如果是空格,字符串转换成整数并压入数组: 注意: 对于连续的空格输入要进行判断,否

  • python实现在IDLE中输入多行的方法

    在python命令行模式下,在IDLE中输入多行,例如if  else 使用tab的方式,控制缩进 在最后,连续两个回车,表示结束 >>> if state: ... print "ok" ... else: ... print "wrong" ... wrong >>> 以上这篇python实现在IDLE中输入多行的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: Pyth

  • python交互模式下输入换行/输入多行命令的方法

    先给大家介绍下python交互模式下输入换行/输入多行命令的方法 换行方法 \ 如: >>> print 'aaa'; \  ... print 'bbb'; \  ... print 'ccc' 注意;号的使用. python本身语句结束和间隔都是不需要:号的,但是在换行时要使用:号,最后一行不要求必须有:号,加上也不会出错. ps:下面看下如何在python的交互式命令行下换行 >>> 是python的输入提示符,回车则输入结束.那么如何输入两条以上的语句呢 换行方

  • python输入多行字符串的方法总结

    Python中输入多行字符串: 方法一:使用三引号 >>> str1 = '''Le vent se lève, il faut tenter de vivre. 起风了,唯有努力生存. (纵有疾风起,人生不言弃.)''' >>> str1 'Le vent se lève, il faut tenter de vivre. \n起风了,唯有努力生存.\n(纵有疾风起,人生不言弃.)' >>> print(str1) Le vent se lève,

  • C#/.NET使用git命令行来操作git仓库的方法示例

    我们可以在命令行中操作 git,但是作为一名程序员,如果在大量重复的时候还手动敲命令行,那就太笨了. 本文介绍使用 C# 编写一个 .NET 程序来自动化地使用 git 命令行来操作 git 仓库. 这是一篇很基础的入门文章. 最简单的运行 git 命令的代码 在 .NET 中,运行一个命令只需要使用 Process.Start 开启一个子进程就好了.于是要运行一个 git 命令,我们其实只需要这句足以: Process.Start("git", "status")

  • 使用cmd命令行窗口操作SqlServer的方法

    osql 工具是一个 Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件.osql 工具使用 ODBC 数据库应用程序编程接口 (API) 与服务器通讯. 本文主要介绍使用windows下的使用cmd命令行窗口操作Sqlserver,首先我们可以运行 osql ?/ ,这样就把所有可以通过CMD命令行操作sqlserver的命令显示出来. osql下载地址 http://www.jb51.net/database/57662.ht

  • 原生JS 实现的input输入时表格过滤操作示例

    本文实例讲述了原生JS 实现的input输入时表格过滤操作.分享给大家供大家参考,具体如下: 需求:对input框进行键盘输入后根据输入的内容去匹配表格中指定的数据项,若存在相匹配的则只显示匹配的数据项: 细节处理:监听键盘输入后给一定的缓冲时间避免发生频繁的请求: 解决思路:给个定时器,当键盘开始输入时启动定时器,倘若在指定的时间内都不在进行输入操作,则执行匹配操作,否则取消操作,同时限定输入的字符串大于等于2位数字时再进行匹配操作,使过滤效果更精准一些. <!--JS --> var ti

随机推荐