从文件中逐行读取并存储到二维数组中

     2023-02-21     195

关键词:

【中文标题】从文件中逐行读取并存储到二维数组中【英文标题】:Reading line by line from a file and storing into a 2d array 【发布时间】:2018-02-26 21:05:40 【问题描述】:

我正在尝试从文件中逐行读取并将其存储到二维数组中。我得到了一个非常奇怪的输出,它是下面的屏幕截图。 输入文件如下所示:

-x-
xx-
--x

代码如下:

int counter=-1;
while(getline(InputFile,line))

    counter++;
    //cout<<"line size is "<<line.size()<<endl;

    for (int i=0;i<NumOfColms;++i)
    
        if (line[i]=='-')
        
            //cout<<"0 ";
            CurrentArray[counter][i]=0;
        
        else if (line [i]=='X'||line [i]=='x')
        
            //cout<<"x ";
            CurrentArray[counter][i]=1;
        
    
    //cout<<endl;

    for (int i=0;i<NumOfRows;++i)
    
        for (int j=0;j<NumOfColms;++j)
        
            cout<<CurrentArray[i][j]<<" ";
        
        cout<<endl;
    

SCREENSHOT

【问题讨论】:

NumOfColms 是如何确定的?这不是MCVE 它是从不同的文件中获取的。但本质上,它们都等于 3 那么我将如何跳过空格和 /n @drescherjm 检查line 中的空白字符并删除它们 【参考方案1】:

您有如此奇怪的输出的原因是因为您在阅读每一行之后都会完整打印出CurrentArray 的内容。因此,从您的图像来看,它看起来像这样:

Line -x- read
0 1 0 //-- CurrentArray[0][0..1..2], which is -x-
7431232 7407000 1951160272 //-- CurrentArray[1][0..1..2]
7406760 7407000 0 //-- CurrentArray[2][0..1..2]

Line xx- read
0 1 0 //-- CurrentArray[0][0..1..2], which is -x-
1 1 0 //-- CurrentArray[1][0..1..2], which is xx-
7406760 7407000 0 //-- CurrentArray[2][0..1..2]

Line --x read
0 1 0 //-- CurrentArray[0][0..1..2], which is -x-
1 1 0 //-- CurrentArray[1][0..1..2], which is xx-
0 0 1 //-- CurrentArray[2][0..1..2], which is --x

如您所见,第 1 次和第 2 次迭代打印出一些垃圾,当您为 CurrentArray 分配空间时,这些垃圾在内存中,但只有第 3 次打印出正确的数据,因为此时您已为所有元素分配了正确的值。

解决方案:将您的打印输出循环移出while 范围并将其放在它之后,因此当while 循环完成时,您已经为CurrentArray 的所有元素分配了值.

【讨论】:

【参考方案2】:

我在这里猜测,但没有看到您声明、分配内存和 null 终止数组的代码,我认为这需要修复。你得到的输出表明你可能出于某种原因超出了你的数组,因为你得到了看起来像垃圾数据的输出。我以前见过这种情况。

另外,NumOfRowsNumOfColumns 是如何计算的?我对此也有疑问。

【讨论】:

有没有办法从 ASC 文件中逐行读取并在特定子字符串后检查它?

】有没有办法从ASC文件中逐行读取并在特定子字符串后检查它?【英文标题】:IsthereawaytoreadlinebylinefromaASCfileandcheckingitafteraspecificsubstring?【发布时间】:2019-08-0907:16:15【问题描述】:我有一个包含很多行的文件,我想将其转换... 查看详情

如何从 C++ 中的文本文件中逐行读取整数? [复制]

】如何从C++中的文本文件中逐行读取整数?[复制]【英文标题】:Howtoreadintegerslinebylinefromatextfileinc++?[duplicate]【发布时间】:2020-02-2420:10:58【问题描述】:所以我有一个关于图表的问题,我必须从输入文件中读取多个案例并检查... 查看详情

C ++在循环中逐行写入文件或添加到数组并在循环后写入文件?

】C++在循环中逐行写入文件或添加到数组并在循环后写入文件?【英文标题】:C++Writetofilelinebylineinlooporaddtoarrayandwritetofileafterloop?【发布时间】:2018-05-1410:38:35【问题描述】:我开发了一个CFD仿真模型,该模型主要在一个循环中... 查看详情

如何从 .t​​xt 中提取文本并将其存储到动态二维数组中?

...时间】:2021-12-0911:07:50【问题描述】:我需要从我的.txt文件中逐行提取文本并将其存储到一个动态数组中,每次我从.txt文件中提取新行时都会分配新空间。我的代码似乎可以很好地拉出第一行并将其存储到第一个指针数组中,... 查看详情

从文本文件中逐行提取数据并将其存储在python的列表中[重复]

】从文本文件中逐行提取数据并将其存储在python的列表中[重复]【英文标题】:extractingdatalinebylinefromatextfileandstoringitinalistinpython[duplicate]【发布时间】:2020-07-0920:06:10【问题描述】:我有一个包含不同国家名称的文本文件,如下... 查看详情

在 Swift 中逐行读取文件/URL

】在Swift中逐行读取文件/URL【英文标题】:Readafile/URLline-by-lineinSwift【发布时间】:2014-08-2605:15:45【问题描述】:我正在尝试读取NSURL中给出的文件并将其加载到数组中,其中项目由换行符\\n分隔。这是我目前的做法:varpossList:NS... 查看详情

在 Swift 中逐行读取文本文件?

】在Swift中逐行读取文本文件?【英文标题】:ReadatextfilelinebylineinSwift?【发布时间】:2015-10-2501:16:18【问题描述】:我刚开始学习Swift。我已经从文本文件中读取了我的代码,并且应用程序显示了整个文本文件的内容。如何逐行... 查看详情

Python:如何在 numpy 数组中逐行读取?

】Python:如何在numpy数组中逐行读取?【英文标题】:Python:Howtoreadlinebylineinanumpyarray?【发布时间】:2016-06-0508:11:13【问题描述】:我想知道我们可以在数组中逐行读取。例如:array([[0.28,0.22,0.23,0.27],[0.12,0.29,0.34,0.21],[0.44,0.56,0.51,0.... 查看详情

python从txt文件中逐行读取数据(代码片段)

非常的简单,提供三种方法:方法一:f=open("foo.txt")#返回一个文件对象line=f.readline()#调用文件的readline()方法whileline:printline,#后面跟','将忽略换行符#print(line,end='')   #在Python3中 查看详情

在 VBA 中逐行读取/解析文本文件

】在VBA中逐行读取/解析文本文件【英文标题】:Read/ParsetextfilelinebylineinVBA【发布时间】:2012-07-1617:45:47【问题描述】:我正在尝试使用VBA解析文本文档并返回文本文件中给出的路径。例如,文本文件如下所示:*Blahblahinstructions*B... 查看详情

在 Go 中逐行读取文件

】在Go中逐行读取文件【英文标题】:ReadingafilelinebylineinGo【发布时间】:2012-02-0403:44:52【问题描述】:我在Go中找不到file.ReadLine函数。我可以弄清楚如何快速写一个,但我只是想知道我是否在这里忽略了一些东西。如何逐行读... 查看详情

在python中逐行读取一个大的压缩文本文件

】在python中逐行读取一个大的压缩文本文件【英文标题】:Readalargezippedtextfilelinebylineinpython【发布时间】:2012-07-1400:05:52【问题描述】:我正在尝试使用zipfile模块来读取存档中的文件。未压缩文件约为3GB,压缩文件为200MB。我不... 查看详情

从 csv 文件中逐块读取和反转数据并复制到新的 csv 文件

】从csv文件中逐块读取和反转数据并复制到新的csv文件【英文标题】:Readandreversedatachunkbychunkfromacsvfileandcopytoanewcsvfile【发布时间】:2019-04-0201:21:47【问题描述】:假设我正在处理一个非常大的csv文件。所以,我只能将数据逐块... 查看详情

在 C# 中逐行读取文件

】在C#中逐行读取文件【英文标题】:ReadingafilelinebylineinC#【发布时间】:2010-11-1906:20:55【问题描述】:我正在尝试读取一些文本文件,其中每一行都需要处理。目前我只是使用StreamReader,然后单独读取每一行。我想知道是否有... 查看详情

从 Excel 中逐行读取参数以进行 Anylogic 实验

...】:我想运行一个AnylogicParameter实验,并且我希望从excel文件中连续读取参数,以便每行excel数据对应于一次运行的参数。同样,我希望它运行的次数与excel中的参数行一样多。我可以 查看详情

如何在 Java 中逐行读取文本文件并分隔每一行的内容?

】如何在Java中逐行读取文本文件并分隔每一行的内容?【英文标题】:Howdoyoureadatextfile,linebyline,andseparatecontentsofeachlineinJava?【发布时间】:2015-10-1401:21:23【问题描述】:我想知道如何读取文件并扫描每一行,但将每一行的内容... 查看详情

在 C 中逐行浏览文本文件

】在C中逐行浏览文本文件【英文标题】:GoingthroughatextfilelinebylineinC【发布时间】:2012-03-0115:24:32【问题描述】:我一直在为我的CIS课程做一个小练习,并且对C用于读取文件的方法感到非常困惑。我真正需要做的就是逐行读取文... 查看详情

如何逐行读取文本文件并使用android将每一行存储在数组中?可以在android中读取xls文件吗?

】如何逐行读取文本文件并使用android将每一行存储在数组中?可以在android中读取xls文件吗?【英文标题】:Howtoreadafileatextfilelinebylineandstoreeachlineinanarrayusingandroid?Cananxlsfilebereadinandroid?【发布时间】:2011-05-1003:52:02【问题描述】... 查看详情