【发布时间】:2019-11-10 17:33:56
【问题描述】:
我真的很困惑如何解决这个问题。我有一个这样的文本文件:
STEP
10
NUMBER line
2
cc
aa
ab
ac
ad
1 1 81 91 101
2 1 82 92 102
STEP
20
NUMBER line
2
cc
aa
ab
ac
ad
1 1 51 61 71
2 1 52 62 72
使用这段代码:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main ()
{
string line;
double x0, y0, z0, x1, y1, z1, type ;
int NUMBER_line,id ;
ifstream myfile ("1.txt");
string namefile;
if (myfile.is_open()){
for (int lineno = 0; getline (myfile,line) && lineno < 7; lineno++)
{
if (lineno == 2) myfile>>NUMBER_line;
}
cout <<" NUMBER_line: "<<NUMBER_line<<endl;
for (int linenoq = 0; getline (myfile,line) && linenoq < NUMBER_line; linenoq++){
myfile>>id>>type>>x0>>y0>>z0;
cout<<id<<" "<<type<<" "<<x0<<" "<<y0<<" "<<z0 <<endl;
}
for (int lineno = 0; getline (myfile,line) && lineno < 7; lineno++)
{
}
for (int linenoq = 0; getline (myfile,line) && linenoq < NUMBER_line; linenoq++){
myfile>>id>>type>>x1>>y1>>z1;
cout<<id<<" "<<type<<" "<<x1<<" "<<y1<<" "<<z1 <<endl;
}
}
else cout << "Unable to open file";
return 0;
}
我可以显示有数字的行,我的输出是:
NUMBER_line: 2
1 1 81 91 101
2 1 82 92 102
NUMBER_line: 2
1 1 51 61 71
2 1 52 62 72
但我不知道如何在 81 和 51、82 和 52 等之间进行减法运算。 我想我必须把第四个循环放在第二个循环的某个地方,但我不知道如何。另一件事是关于第三个循环,我不需要它。但我必须把它放在那里,因为如果我不把它放在那里,第四个循环的起始行就会出错。我的意思是第四个循环开始第 12 行而不是第 21 行。
【问题讨论】:
-
如果你有一行作为字符串,你可以使用
std::istringstream从中读取元素。