【发布时间】:2011-05-01 20:14:23
【问题描述】:
我在试图弄清楚为什么我的文件返回 0 而不是文件中的数字时遇到了问题,这是我在 C++ 中读取文件时所做的代码:
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string cfile;
int cnum1,cnum2,cnum3,cnum4;
bool fired = false;
/*
*
*/
void printMatrix(double **x, int n)
{
int size = n;
for(int i=0; i<size; i++)
{
for(int j=0; j<size; j++)
{
std:: cout << x[i][j] << " " ;
}
std:: cout << std::endl;
}
}
void readFile(string file,double **x, int n)
{
std::ifstream myfile(file.c_str());
int size = n;
for(int i=0; i<size; i++)
{
for(int j=0; j<size; j++)
{
myfile >> x[i][j];
}
}
}
void GetCommandLineArguments(int argc, char **argv,string &file, int &n, int &k, int &m, int &i)
{
if( argc == 6 )
{
cfile = argv[1];
cnum1 = atoi(argv[2]);
cnum2 = atoi(argv[3]);
cnum3 = atoi(argv[4]);
cnum4 = atoi(argv[5]);
}
file = cfile;
n = cnum1;
k = cnum2;
m = cnum3;
i = cnum4;
}
int main(int argc, char** argv) {
int k; //Factor of n
int m; //Innner matrix size
int i; //Iteration
int n; //Matrix Size
string file;
GetCommandLineArguments(argc, argv, file, n, k, m, i);
double **matrix;
matrix = new double*[n];
for(int i = 0; i<n; i++)
matrix[i] = new double[n];
for(int j=0; j<n; j++)
for(int i=0; i<n;i++)
matrix[i][j] = 0;
readFile(file, matrix, n);
printMatrix(matrix, n);
return 0;
}
这是我的文件示例,其中包含我要从中提取的值:
20.0
20.0
20.0
20.0
20.0
200.0
20.0
200.0
希望有人可以帮助我,因为我研究了一些关于此的信息并没有真正找到解决方案。
【问题讨论】:
-
有问题吗?没有使用它的代码,而且它可能只是工作。您的输入是否包含空行?最好不要
-
这不是我的全部代码,我只是想在我的代码中显示我看到问题的区域。
-
你是怎么调用这个函数的?你能展示一下使用这个函数的代码吗?
-
是的,我刚刚编辑了我的帖子,并在我的代码中添加了一个 pastebin 链接。
-
@Novazero:您的 pastebin 链接将在 24 小时后过期 - 您认为这会有多大用处?比如说,一天?请将代码内联到您的问题中。