【发布时间】:2021-11-07 00:42:23
【问题描述】:
当我在 Clion 上运行我的代码时,我没有收到此错误。但是当我在学校的开发服务器上运行我的代码时,我意识到除了下面文件中的最后一行之外的每个行大小都有一个大小 line.size()+1。
这是我的文件
6
5 8 2 5 6 7
5 4 7 3 2 1
2 5 3 4 7 5
6 5 8 7 2 3
6 4 3 1 1 2
2 7 8 2 1 6
2 1
1 2
2 4
4 0
5 3
2 2
它将第一行大小读取为 2 等。它将除最后一行之外的每个行大小读取为大小 +1。
这是我的代码。
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
int num;
vector <vector <int> >board;
int points = 0;
int main(int argc, char **argv) {
string file_name_2 ;
vv << argv[2];
vv >> file_name_2;
stringstream vd;
fstream myFile;
myFile.open(file_name_2, ios::in);
if (myFile.is_open()) {
string line;
int index = 0;
while(getline(myFile, line)){
if (line.size()== 1 || line.size()==2 || line == "100"){
stringstream zz;
zz << line;
zz >> num;
.
.
.
我正在使用getline(file_name, line) 来读取行。
这是什么原因造成的,我该如何解决?
【问题讨论】:
-
请提供一个minimal reproducible example,其中包括一个函数
main和所有#include指令。 -
您是否正在将此文件从 Windows 移动到 Linux?
-
@Yksisarvinen 我使用 Windows 没有问题,然后在我大学的开发服务器上运行它并遇到了这个问题,但我实际上不知道它是什么开发服务器。
-
您如何将文本文件上传到大学的服务器?您可以选择以文本模式而不是二进制模式上传吗?如果你这样做,那么你应该使用该选项。如果你没有那个选项,你可以在大学的服务器上运行
dos2unix命令吗? -
调试它的下一步是打印长度不是您期望的行的实际内容。打印每个字符,以便不遗漏不可见的字符并从那里开始。