发布将文本文件读入矩阵的问题
Issue reading text file into matrix
我正在尝试将文本文件中的数据读取到矩阵中。文本文件如下所示。
Object data
Format 6
1 5241.365147 -77215.356982 248612.514352 0.000014 0.000009 0.000051
2 5242.871592 -77213.351692 248614.103512 0.000013 0.000008 0.000052
...
我在这个网站上搜索了以前的答案,寻找类似的问题,并编写了以下代码。
#include <iostream>
#include <fstream>
#include <vector>
using namespace std
int main ()
{
// Initialize variables
int i, j, i_max, j_max;
i_max = 7;
j_max = 4;
//Open the input file
ifstream infile;
infile.open ("data.txt");
//Loop through the values in the text file
double data [i_max][j_max];
for (i=0; i<i_max; i++) {
for (j=0; j<j_max; j++) {
infile >> data[i][j];
printf ("%dn", data[i][j]); //Check the input
}
}
return 0;
}
我遇到的问题是,我用来检查输入的printf语句只将j_max的值写入终端。如有任何帮助,我们将不胜感激。
修复如下:-
i_max = 4; //this is no. of rows
j_max = 7; // this is no. of cols
std::string dummy;
getline(infile,dummy); //Skip 1st line "Object data"
getline(infile,dummy); //Skip 2nd line "Format 6"
double data [i_max][j_max];
for (i=0; i<i_max; i++) {
for (j=0; j<j_max; j++) {
infile >> data[i][j];
// Use %f format specifier for floats
printf ("%fn", data[i][j]);
}
}
另外,请不要把C&C++
除了数据文件解析和缺少分号之外,问题还在于printf。"d"是int的格式代码,但您传递的是一个double。你需要使用"g"。或者更好的是,std C++流。
如果你打开警告,GCC会告诉你这一点。通常,使用:"-Wall-Wextra",或者在这种特殊情况下使用"-Wformat"。
这真的会成为输入文件的一部分吗?
Object data
Format 6
如果是这样的话,就跳过这些行:
char s[10];
infile.getline(s, 5);
infile.getline(s, 5);
我使用char数组"s"将整行的前5个字符复制到其中。当你调用getline()时,读取器会加载所有行,所以无论你读了多少行,都会跳过。并确保您已声明,以便可以使用getline函数。
#include <string.h>
如果我帮助过你,请告诉我。
相关文章:
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- 绘制文本问题
- 用户定义的文本运算符(在原始模式下)存在问题
- 在 cout 中将线条表单文件与自定义文本组合时出现问题
- 在文本中查找半个单词"ABBA"的问题
- 从文件中读取文本时出现编码问题
- QTreeWidgetItem 突出显示文本问题
- 在 Qt C++ 中在自定义项委托上绘制文本时的性能问题
- opengl 飞行模拟器应用程序中的文本呈现问题
- 使用 c++ ifstream 读取文本文件问题
- 在C++中使用 Visual Studio 读取文本文件时遇到问题
- 我在编写从文本文件中读取数据并按升序打印的代码时遇到问题
- 使用 substr 提取文本文件时出现问题
- 问题 - 递归函数以返回文本文件排列
- 我在让我的代码输出整个链表时遇到问题.它只是输出我修改过的一些文本文件,而不是整个东西
- 解析基于逗号的文本文件时出现问题 (C++)
- UTF-16LE 编码问题与 Qt 文本编辑器用 C++ 编写
- 不确定我在阅读文本文件时的问题是什么
- 如何解决此问题,我需要从文本文件中导出一行
- 问题创建一个将一些文本放入qtextedit中的问题