C++ csv。文件读取c++;。。。无法读取每行的第一个数字
我正在尝试读取一个包含多行数字的.csv文件。我知道如何使用逗号分隔符读取每个值,但我似乎在读取每行的第一个数字时遇到了问题。在查看了我的代码之后,我现在知道了它是什么,因为每行的最后一个数字后面没有逗号,这会导致程序跳过下一行的第一个数字。有没有一种方法可以绕过这个问题,而不用在文件中的每一行末尾手动插入逗号?我已经尝试过分别读取每一行,然后对其进行解析,但是读取每一行似乎会读取整个文件鉴于您知道如何使用逗号分隔符拆分字符串,您还应该发现使用行尾分隔符拆分字符串很容易。然后通过逗号分隔符对每个字符串应用第二个拆分过程。此外,请确保您的行尾定界符没有首先导致问题,即,C++ csv。文件读取c++;。。。无法读取每行的第一个数字,c++,file,csv,C++,File,Csv,我正在尝试读取一个包含多行数字的.csv文件。我知道如何使用逗号分隔符读取每个值,但我似乎在读取每行的第一个数字时遇到了问题。在查看了我的代码之后,我现在知道了它是什么,因为每行的最后一个数字后面没有逗号,这会导致程序跳过下一行的第一个数字。有没有一种方法可以绕过这个问题,而不用在文件中的每一行末尾手动插入逗号?我已经尝试过分别读取每一行,然后对其进行解析,但是读取每一行似乎会读取整个文件鉴于您知道如何使用逗号分隔符拆分字符串,您还应该发现使用行尾分隔符拆分字符串很容易。然后通过逗号分隔符对每个
“\n”
,“\r”
和“\r\n”
是行尾定界符的三个可能值,一个与另一个可能会首先导致不逐行读取的问题。请发布一些代码。您使用什么功能读取文件?谢谢您的快速回复。将中的“\r”替换为“\n”修复了该问题。是否\r总是指行尾\n和文件尾?我对c++“\r”
和“\n”
是打字机时代的“回车”和“换行”字符,但在不同的操作系统(Windows、Mac、Linux)上使用的方式不同。因此,当编码以处理不同的可能性时,文件的来源(即创建/编辑文件的操作系统)是一个重要的考虑因素。这很有意义,谢谢。最后一个问题:我假设这是某种类型的语法问题,但我似乎无法分割我正在阅读的行。这就是我试图做的:while(file.good()){getline(file,line,'\r');for(i=0;i>dailyhours;array[i]=dailyhours;dailyhours=0;totalhours=totalhours+array[i];我对你的评论有很多困难吗?首先,我不知道你的哪一行被注释掉了。其次,我相信编译器对'\r'
和“\r”的解释是不同的
,但我对此不确定。对此我很抱歉。没有任何行被注释掉,因此您可以忽略任何//。此外,当我尝试使用“\r”编译时,getline函数会导致代码生成失败而不是“\r”。这是因为变量im使用的是字符串吗?以及错误im使用上面的代码“没有匹配的函数调用getline”。这是指代码中的第二个getline