【发布时间】:2016-03-18 14:31:05
【问题描述】:
我的 input.txt 文件:
4
4
5 0 1 2
1 4 0 0
1 1 5 4
0 6 3 2
0 4 1 2
1 7 5 0
2 3 5 6
0 6 2 2
1:0 4 2 0
我现在的程序:
#include <iostream>
#include <fstream>
#include <string>
#include <stdlib.h>
#include <sstream>
using namespace std;
int main()
{
ifstream File("input.txt");
string line;
string num;
string array[50];
string comma;
int i=0;
while (getline(File,line)) {
comma="";
istringstream s(line);
if (line.empty()){
comma=",";
s >> num ;
array[i] = comma;
}
else {
s >> num ;
array[i] = num;
}
i++;
}
return 0;
}
好吧,我的程序没有给我想要的东西!当我打印数组 [i] 时,它只给我第一列中的数字!像这样:
4
,
4
,
5
3
1
7
,
0
1
2
6
,
1:0
我想做的是在有空行的地方放一个逗号,这样我就可以区分这些数字并将它们存储在一个 intger 数组中以在它们之间进行数学运算。
解释一下我的 input.txt 文件:
我可以更改输入文件中的数字和矩阵大小。
4 <= #number of items
4 <= #types of items
5 0 1 2 <= matrix #1
1 4 0 0
1 1 5 4
0 6 3 2
0 4 1 2 <= matrix #2
1 7 5 0
2 3 5 6
0 6 2 2
1:0 4 2 0 <= Available numbers for item #1
我想:
在变量中存储项目数。
将项目类型存储在变量中。
将 matrix #1 和 matrix #2 存储在 2 个数组 中并进行 减法在矩阵#1 和矩阵#2 之间。
这可以做到吗?或者有没有更简单的方法来区分这些数字并将它们存储在变量和数组中?
【问题讨论】:
-
您的输入行能否以
\r\n结尾(即Windows 行结尾)? -
你说它没有给你你想要的,但你没有说它正在给你什么。我怀疑问题是你永远不会清除
comma,所以一旦设置好,你最终会在后面的所有行(是否为空)后面加上一个逗号。如果这是您的问题,请将else { comma = "" }添加到您的if语句中。如果没有,那么您需要在问题中添加详细信息。 -
@clcto 很抱歉没有很好地解决我的问题,我已经编辑了我的帖子希望你现在更清楚?
-
感谢您提供更多信息。
标签: c++ arrays matrix ifstream