みんな。この小さなテストプログラムを作成して、「EXAMPLE.txt」からメインプログラムにテキストファイルを読み込みます。出力では、「*」を入力して、出力中にデータを表示します。これは、データを抽出して配列に配置するデータです。たとえば、このテストプログラムで抽出したいデータは、「JY9757AC」、「AZ9107AC」、「GY9Z970C」です。しかしその後、試運転を行ったところ、出力に関してこの問題に直面しました。
Example.txt
ABC:JY9757AC
HDMI:AZ9107AC
SNOC:GY9Z970C
MAIN.CPP
main()
{
string output;
ifstream readExample;
readExample.open("EXAMPLE.txt");
while(readExample.eof())
{
getline(readExample,output,':');
cout << "* " << output <<endl;
}
}
出力
* ABC //while loop output the "ABC", which is the data that I don't want.
* JY9757AC
HDMI //it work's well, as what I expected and so and the SNOC below
* AZ9107AC
SNOC
* GY9Z970C
「* ABC」が出力に表示される理由がわかりません。ロジックに問題がありますか。または、whileループ内で何かを見逃しましたか?私のコードを解決するのを手伝ってくれてありがとう!
出力は、Example.txtからの最初の抽出を格納し、その後に*を付けて出力します。output = "ABC";
2番目の反復の最初の反復でoutput = "JY9757AC";
。getline()
行の不要な部分を読み取るwhileループにを追加しました。またstring[]
、抽出した値をに格納するためにを追加しました。
#include <fstream>
#include <string>
using namespace std;
int main()
{
string output, notWanted, stringArray[3];
int i = 0;
ifstream readExample;
readExample.open("EXAMPLE.txt");
while (!readExample.eof())
{
getline(readExample, notWanted, ':');
getline(readExample, output);
cout << "* " << output << endl;
stringArray[i++] = output;
}
cin.get();
return 0;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加