0

私は次の行に沿って何かを見る.txtファイルから読み込んでいます:

int string string string
int string string
int string string string string string

stringそれぞれの後のタイプの数intは不明です。各行は新しい値のグループを表し、各グループは独自の配列値などに含める必要があります(私がそれを正しく表現したかどうかはわかりませんが、私が何を意味するのか理解していただければ幸いです)。

実行できるチェックはありますか?ファイルからの受信データがintそうであるかどうかを確認して、これが真であり、プログラムに新しいデータのグループを伝えることができるかどうかを確認しますか?

私はもう試した

int check
if(check = file1.peek()){//start new group assignment} 

しかし、これは機能していないようです。int読み込まれる次のデータ型であることがわかったら、その値を使用できるようにする必要があります。

前もって感謝します。

4

1 に答える 1

1

これを行うにはいくつかの方法がありますが、グループが別々の行にあり、行内のスペースがグループ内の項目を区切っていることをお勧めしますか?

そのため、ファイルを1行ずつ読み取り、各行をスペースで分割します。

上記が当てはまるかどうか教えてください。そうすれば、その方法を説明できます。

わかりました。getlineを使用できます。

while (cin.good()) // reading from standard input until EOF
{
    String line_str;
    getline(cin, line_str); // get next line from standard input
    istringstream line(line_str); // put line into string stream

    if (line.good()) // read from string stream until EOF
    {
        int x;
        line >> x; // read an integer from string stream

        while (line.good()) // read from string stream until EOF
        {
            string s;
            line >> s; // read strings from string stream
            /// process s
        }
    }
}
于 2012-04-15T18:42:13.143 に答える