私はUbuntu操作システムでEclipseを使用していて、このデータを最初から "END OF HEADER"という文字列に印刷しようとしていますが、なぜ私が期待したものではないのか分かりません。なぜデータがunbuntu C++でeclipseで印刷されないのですか?
テール ".17n"という別のファイルを使用してテストしても機能しましたが、使用しようとしているファイルが "CAS100ATA_R_20160100000_01D_EN.rnx"で動作せず、データがwhileループにスタックされています。 2これらのデータファイルはまったく同じフォーマットですが、「.17n」や「.rxn」などの異なるテールフォーマットかもしれません。これをどうやって取得するのか分かりません。
誰でも助けることができれば、私はその助けに感謝します!
ここに私のコードと添付のデータファイルがあります。
ありがとうございました。
非常によろしくお願いいたします。
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstring>
#include <string>
#include <sstream>
#include <csignal>
#include <cstdio>
using namespace std;
const int MAX_CHARS_PER_LINE = 81;
nt main() {
string filename = "GANP00SVK_R_20160100000_01D_EN.rnx";
ifstream fin;
fin.open(filename.c_str());
int head_lines = 0;
std::string header_end =("END OF HEADER");
char line[MAX_CHARS_PER_LINE];
while (1) // scanning data per line until hit the message "END OF HEADER"
{
head_lines++;
fin.getline(line, MAX_CHARS_PER_LINE);
std:: string line1(line);
std::size_t found = line1.find(header_end);
if (found!=std::string::npos)
{
break;
}
}
cout << "done!"<<endl;
return 0;
}
オプス、私はデータファイルをアップロードすることはできませんが、このリンクをクリックしてください、あなたはCAS100ATA_R_20160100000_01D_EN.rnxファイルを取得することができます。 ftp://cddis.gsfc.nasa.gov/gnss/data/daily/2016/010/16l/
無限ループになるでしょう。このコードについては何もありません。 –
@LightnessRacesinOrbit:間違ったコードを残念に思っています。ここには更新があります。あなたが見た以前のものは働いているものですが、私はデータの読み込みを停止したい行を検出できません。 "END OF HEADER"ラインに当たったときに理想的な新しいコードは、whileループ中に無限に飛び出しますが、whileループにはまだ突っ込んでいます。 –
'getline'が成功したことをもうチェックしていないからです。なぜ 'char'配列に切り替わったのですか? –