我正在使用C ++来读取文件并进行一些计算。我需要保存关键字的值,但我遇到了问题。我设法逐行读取文件,并在字符串中找到关键字。但如果我用cout检查它,如果我将它分配给变量并用cout打印它,我会得到不同的结果。
该文件具有以下格式 vtk DataFile Version 2.0
#Generated by lpp.py
ASCII
DATASET POLYDATA
POINTS 3 float
我使用的代码是:
#include <string.h>
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
int main(){
int nPart = 0;
string fileName = "liggghts_simPart";
string extension = ".vtk";
string keyword = "POINTS";
string currentFile;
string line;
int numLines = 0; // counter for line reading
currentFile = "liggghts_simPart0500.vtk";
//Open the curren file
ifstream fileToOpen;
fileToOpen.open(currentFile);
for (int i = 0; numLines <= 4 && getline(fileToOpen, line); ++numLines){
}
cout << line << endl;
size_t found = line.find(keyword);
nPart = line[ found + keyword.size() + 1 ]; // get key value
cout << line[ found + keyword.size() + 1 ] << endl;
cout << nPart << endl;
}
我得到的输出是
POINTS 3 float
3
51
那么为什么我会得到不同的输出?我应该在两种情况下得到关键字的值,即3。
如果有人能帮助我,那就太好了!
谢谢, 莫罗