如何检查空行
How To Check empty Lines?
my 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
我想:
存储变量中的项数。
将项目类型存储在变量中。
在2数组中存储matrix#1和matrix#2,并在矩阵#1和矩阵#2之间执行减法。
这能做到吗?或者有什么更容易的方法来区分这些数字,并将它们存储在变量和数组之间?
问题很简单。
你用读取一行数据
while (getline(File,line)) {
但你只处理这行中的一个元素:
if (line.empty()) {
...
s >> num ;
...
}
else {
s >> num ;
}
您只需要将if ... else
语句放入某种循环中。
此外,我不理解if
语句的第一个分支:如果line
为空,那么s
中就不应该有任何内容可供读取。
所以,稍微编辑一下,这应该更接近你想要的(我还没有尝试过,看看它是否真的有效):
...
while (getline(File,line)) {
if (line.empty()) {
array[i] = ","
++i;
continue;
}
istringstream s(line);
while(s >> num) {
array[i] = num;
++i;
}
}
return 0;
}
相关文章:
- valgrind-hellgrind与泄漏检查的结果不同
- C++模板来检查友元函数的存在
- 检查输入是否不是整数或数字
- 试图让变量检查数组中的某些内容
- 检查值是否在集合p1和p2中,但不在p3中
- C++概念:如何使用'concept'检查模板化结构的属性?
- 概念TS检查忽略私有访问修饰符
- 检查 std::shared_ptr<> 的当前底层类型是否为 T
- 在c++中检查长方体是否尽可能快地重叠(无迭代)
- 如何在C++中检查2D数组中负值的输入验证
- C++:正在检查LinkedList中的回文-递归方法-错误
- 使用for循环检查数组中的重复项
- 如何检查一个c++字符串中有多少相同的字符/数字
- 检查不带转换的扫描格式
- 如何检查线程是否锁定
- 清除前检查矢量
- 如何处理来自核心指南检查器的关于gsl::at的静态分析警告
- C++LDAP检查用户是否是特定组的成员
- 我如何循环循环switch语句检查重新检查char?(C )
- Visual Studio - 如何从 C++ 核心指南检查器检查路径中排除文件夹