【问题标题】:accessing rows/columns from txt file table in C从 C 中的 txt 文件表访问行/列
【发布时间】:2014-09-27 17:29:52
【问题描述】:

对于我的问题,我需要您的帮助或一些建议。例如,有一个如下所示的表格:

blahbla 4 5 7 44          
lololol 8 7 8 45   
kokooko 1 2 3 4

这些表格有 3 行 4 列,但行数和列数可能会有所不同。我需要从该表中读取值(fopen 没有问题),但问题是我不知道如何从该表中访问具体值。例如,如果我只想从第一行或第三列打印值,我应该怎么做?请在不使用 malloc 的情况下给我一些建议,谢谢。

【问题讨论】:

  • 为什么要避开malloc
  • 我不允许使用它,所以我正在寻找另一种可能性,但我不知道如何实现它
  • 你应该添加标签“homework-that-i-am-too-lazy-to-do”
  • 读行数数。
  • 我不想让你写代码,我只想要一些建议......

标签: c


【解决方案1】:

查找矩阵大小

首先你应该找到矩阵大小。行很容易,您只需要计算行数(我假设您正在从 .txt 文件中读取数据)。接下来是列。如果所有行都具有相同数量的元素,您可以遍历作为第一行的字符串并检查字符串的元素是否为字母(例如使用 isalpha 函数)。如果元素是字母,那么您可以增加列数 - 如果不是,那么它将是空格或数字,如果是空格,那么您应该增加列数变量,如果不是,那么您必须跳过到下一个元素。 如果表格的行中元素的数量可能不同,那么您应该遍历每一行并找到列数,就像之前的情况一样,找到最大值。

创建矩阵并复制数据

现在,当您拥有矩阵的大小时,您可以像这样分配它:string table[numberOfRows][numberOfColumns] - 然后您应该再次遍历 txt 文件中的数据,检查行中的元素是 alpha 还是是空间。如果它是一个空格并且下一个字符是数字(你可以用 isdigit 和 isspace 检查它),那么你应该创建一些字符串变量,你将连接它直到它碰到另一个空格或行尾 - 然后你将它分配给矩阵.如果它是字母,那么它会很容易,只需将它分配到矩阵中的适当位置即可。请记住,您必须用“0”之类的内容填充矩阵中的其他元素(当然只有当行可以具有不同数量的元素时)。

检索数据

您只能从列或行中检索数据,只需创建一个具有表列或行大小的数组,然后您可以例如遍历表并检查行(列)是否是有趣的你。如果是,请将其分配给您的数组。然后你可以用另一个循环打印它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多