如何使用C语言中的CSV文件使用字符串(char *)填充2D数组

时间:2015-09-27 08:26:20

标签: c arrays string file csv

我正在开发一个项目,我试图在CSV文件中读取并检查各种不同的参数。 C对我来说是一种新语言,所以我仍然习惯它,而我的代码可能不会像它那样简化。无论如何,我的问题是:当我读取文件以确保每行具有相同数量的条目时它工作正常,但是当我尝试将值放入2D数组时,一切都搞砸了。 arr [0] [0]的值应该是CSV文件中的第一个值,但是当我打印出来看它是什么时,它始终是最后一行中的第一个值。我不能为我的生活弄清楚这一点,我一直在看这个代码,并在几个小时内修补它。任何帮助将不胜感激!

<nav class ="navbar topNavbar">
<div class="container-fluid">
<ul class="nav navbar-nav navbar-right">
<li><a href=""><span class="glyphicon glyphicon-log-in"></span> Login </a></li>
<li><a href="signup.php"><span class="glyphicon glyphicon-user"></span> Sign Up </a></li>
</ul>
</div>
</nav>

<nav class="navbar botNavbar">
  <div class="container">
    <div class="navbar-header">
      <a class="navbar-brand" href="">Website name</a>
    </div>
    <div>
      <ul class="nav navbar-nav">
        <li class="active"><a href="">Home</a></li>
        <li><a href="collections.php">Collections</a></li>
        <li><a href="">About Us</a></li>
      </ul>
      </div>
  </div>
</nav>

<style>
.topNavbar {
 background-color: #F60;
}

.botNavbar {
 background-color : #F90;
}
</style>

}

1 个答案:

答案 0 :(得分:0)

这看起来几乎是正确的,但正在发生的是strtok正在将指针返回到行。这意味着它只有最后一行的副本。

考虑为每一行创建一个新的内存插槽,或strdup来自strtok的结果