从多个.csv文件中读取矩阵,并在.csv文件中打印矩阵

从多个.csv文件中读取矩阵,并在.csv文件中打印矩阵,c,csv,file-handling,C,Csv,File Handling,因此,我必须编写一个C程序,将多个用户提供给我的.csv文件中的数据读取到矩阵中,我将在矩阵上执行一些操作(如矩阵加法、与维度上的必要条件相乘等),并再次将这些矩阵(或输出数据)打印到.csv文件中 我还需要为我的矩阵动态分配内存 现在,我在处理.csv文件方面没有任何背景。我根本不知道读取.csv文件或写入.csv文件所需的代码。我在互联网上搜索了很长时间,但令人惊讶的是,我没有找到任何从初级阶段就教授如何处理.csv文件的程序 我对这一点迷惑不解,需要很多指导,可能是一个示例,一个写得很好的

因此,我必须编写一个C程序,将多个用户提供给我的.csv文件中的数据读取到矩阵中,我将在矩阵上执行一些操作(如矩阵加法、与维度上的必要条件相乘等),并再次将这些矩阵(或输出数据)打印到.csv文件中

我还需要为我的矩阵动态分配内存

现在,我在处理.csv文件方面没有任何背景。我根本不知道读取.csv文件或写入.csv文件所需的代码。我在互联网上搜索了很长时间,但令人惊讶的是,我没有找到任何从初级阶段就教授如何处理.csv文件的程序


我对这一点迷惑不解,需要很多指导,可能是一个示例,一个写得很好的C程序,因为我需要一个全面的示例作为开始。

CSV文件只是一个包含网格值的纯ASCII文本文件。将文件视为数据库表中的一组行,其中文件中的每一行表示一条记录,每一行中的数据顺序相同。每个数据项都使用逗号字符分隔(因此得名)。因此,要读取文件:-

open file
until the end of the file
  read line into a string
  split the string into sub strings where ',' is the dilimiter
  parse each sub string
由于CSV文件中没有格式信息,如果每个值中的数据都由字符串组成,那么如果该值中有逗号,您该怎么办?阅读数字对你来说不是问题

您可以通过多次读取文件,第一次是确定数据量(列数、行数等),第二次是实际读取数据

编写CSV非常简单:-

open file
for each record to write
  for each element to write
    write element
    if not last element
      write a comma
   write a new line

CSV文件很难使用-如果你想要一个逗号怎么办?他们进化来处理这些边缘情况。我认为没有一个标准的方法来处理它们。您需要知道的很多内容都在名称中:逗号分隔的值。您最好使用比C(或C++)提供的字符串处理方法更高级的语言来解析这些字符串.我可以告诉你我在谷歌上度过了多少个不眠之夜,却没有发现类似的东西。那么也许你需要更多的睡眠。不,我们的教授特别告诉我们,他将向我们提供csv文件,我们必须在C上运行程序:(嗯,你的评论不知怎么被删除了。结果我丢失了链接。你能再发一次吗?我删除了它,因为我在屏幕上看到它后觉得有点刺耳。链接是。CSV文件有互联网标准,“逗号分隔值(CSV)文件的通用格式和MIME类型”,然后是微软使用的标准(主要是对它的轻度扩展,并处理一些标准称为错误的边缘情况)。该标准是事后的。此外,还有替代分隔符的变体,例如制表符,尽管是一个明显的误称,但它们经常被称为CSV文件(DSV-分隔符分隔的值-更合适,但不太被广泛认可)。标准规定了如何处理包含逗号的字段:将字段值用双引号括起来;值中嵌入的任何双引号都将成为两个相邻的双引号。如果字段开头有双引号,则还必须将字段用双引号括起来,并将双引号加起来(因此
“您好”,他说,“你好吗?”
变成了
“你好”,他说,“你好吗?”“
在一个CSV文件中)。@JonathanLeffler:我想我想说的是,CSV文件在有标准来定义它们之前就存在了,而且很多这样的边缘情况(逗号、引号等)作为常见的解决方法,我们侵入了规范,为这些东西编写解析器的复杂性取决于您想要支持的程度(例如,您可以始终将逗号视为分隔符,或者完全忽略整个引号).总是值得一看是否有一个图书馆可以先使用,然后让其他人来做这项艰苦的工作。