ではifstreamを使用して、txtファイルを読み込みます。は、私はC++ BUILDER 6を使用していると私はこのコードを理解しようとしているC++ Builder 6の
私はtxtファイルに4つの変数をログに記録し、成功を得ています:
sprintf(buffer, "%i,%i,%i,%i", x, yMin, yMed, yMax);
ofstream logData;
logData.open("logData.txt", ios::app);
logData << buffer << "\n";
マイTXT出力は:
1,1686,1784,1972
2,1687,1785,1973
3,1688,1786,1974
...
私は戻って、プロットに変数を取得するには、このファイルを読むために必要がありますグラフ。私はこのようにやっている、それが正常に動作しています:
std::ifstream infile(OpenDialog->FileName.c_str());
int num, y, yMin, yMax;
char a,b,c;
char buffer[100];
if(infile.is_open())
{
while (infile >> x >> a >> yMin >> b >> yMed >> c >> yMax)
{
sprintf(buffer, "X: %i | YMIN: %i | YMED: %i | YMAX: %i", x, yMin, yMed, YMax);
Memo1->Lines->Add(buffer);
}
}
マイMEMO1出力:
X:1 | YMIN: 1686 | YMED: 1784 | YMAX: 1972
X:2 | YMIN: 1687 | YMED: 1785 | YMAX: 1973
X:3 | YMIN: 1688 | YMED: 1786 | YMAX: 1974
...
私の質問は次のとおりです。どのようにC++が変数を区別したのですか?
while (infile >> x >> a >> yMin >> b >> yMed >> c >> yMax)
コード行をsprinftする入る:
sprintf(buffer, "X: %i | YMIN: %i | YMED: %i | YMAX: %i", x, yMin, yMed, YMax);
x = 1
、
yMin = 1686
...を前提としている私が取得できませんでした
変数x、yMin、yMed、YMaxは既にtxtファイルからの値を想定しています。
注:私の理解C++が期待するには、いくつかのINT + CHAR CHARがある+ INT + CHAR ... ''。しかし、「1」もCHARで、ログに記録すると:
1116861178411972 instead 1,1686,1784,1972
これは正しく動作しません。
は、誰かが私にいくつかのガイドを与えることはできますか?それを理解し始めるのはどこか?
[特定のC関数はどのように機能しますか?](https://stackoverflow.com/questions/8883896/how-does-the-particular-c-function-work) –
先頭へ:http: /en.cppreference.com/w/cpp/io/basic_istream/operator_gtgt2 – user0042
理解できない特定のビットについて説明する必要があります。 'cin'、' printf'など何か? –