【问题标题】:Reading numbers from a text file to an array从文本文件中读取数字到数组
【发布时间】:2013-07-31 12:51:00
【问题描述】:

我想将文本文件中的数字读取到数组中。数字在一行中。

  • 如果我使用x.Read(),我会得到第一个字符的ASCII码,

  • 如果我使用x.Readline(),我会得到一行,而不是一个一个的数字。

我想使用循环来一一获取数字。

【问题讨论】:

  • 阅读该行并解析该行以提取您需要的部分并不罕见。这通常使您可以从格式错误的输入数据中提供更好的诊断和恢复。不过,这一切都取决于您使用的语言。

标签: c# text io readline


【解决方案1】:

很简单,当你得到 ASCII 码后,你可以很容易地将它转换成你想要的数字, 假设您从文件中读取了一个字符 (char),它的 '0'、'1'、'2'、... 或 '9' 并且您想要 int 值,您只需将 char 转换为int 并减去 '0' 的整数值,即 48。像这样:

char ch = x.Read();
int chIntValue = ((int)ch) - 48;

但几乎所有现代编程语言在它们提供的io 库中都有ReadIntGetInteger 方法或类似的东西。

【讨论】:

  • 谢谢,但是当数字和空格比较多的时候怎么办?我想写一个从一个文件到另一个文件的排序程序。
  • 要读取多于一位的数字,您可以使用循环读取所有字符,直到到达空格为止,每次只需将当前结果乘以 10 并添加新数字即可。假设你将数字存储在result,你应该用0初始化它,对于你想添加的每个charIntValue,代码看起来像result = result * 10 + charIntValue
  • 谢谢。我想我会这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
  • 2021-12-14
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多