gpt4 book ai didi

文本文件中的 C++ I/O 编号

转载 作者:行者123 更新时间:2023-11-28 00:39:06 24 4
gpt4 key购买 nike

我正在尝试从测试文件中读取数字并将它们显示在矩阵中。在文本文件中,每行一个数字。前两行是矩阵的维度。(3 和 4)我无法将这些数字的实际数据值分配给矩阵。在本例中,值为 2 到 14。

#include <iostream>
#include <fstream>
#include <iomanip>
#include <stdlib.h>
using namespace std;
#include "Matrix.h"

int main()
{
CMatrix A(10,10); //set to arbitrary size
int x;
int i = 0;
int number;
int rowsFile;
int columnsFile;

while ( myFile.good()&& myFile.is_open() )
{
myFile>>x;
if (i==0){ //for row dimension
rowsFile = x;
}

if (i==1){ //for column dimension
columnsFile = x;
}
cout<<"Value "<<i<<": "<<x<<endl; //displays the values


if (i>=2){
for (int r = 0; r < rowsFile; r++)
{
for (int c = 0; c < columnsFile; c++)
{
A.Value(r,c) = x;
myFile>>x;
}
}
myFile.close();
}


i=i+1;
}
myFile.close();

CMatrix A(rowsFile, columnsFile);
cout<<endl<< "Rows: "<<A.getNumberOfRows()<<endl;
cout<< "Columns: "<<A.getNumberOfColumns()<<endl;
cout<<endl<<A.ToString();
}

这是我的输出显示。 enter image description here

出于某种原因,我注释掉的循环似乎不起作用。任何帮助,将不胜感激。谢谢!

最佳答案

虽然由于不完全理解您要做什么,我无法为您提供完整的解决方案,但我建议您按行读取文件的内容并将它们存储在一个 vector 中,如本例所示:

std::ifstream ifs("file.txt");
std::string line;
std::vector<std::string> lines;
if (ifs.good()) while (getline(ifs, line)) lines.push_back(line);
else throw std::runtime_error("An error occurred while trying to read from file.");

这使得处理数据变得更加容易。

关于文本文件中的 C++ I/O 编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19757878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com