0

テキストファイルから入力を取得するコードは次のとおりです。私は文字の賢明な読書を使用しました。B を印刷すると、「rao」の後にのみ余分な行が印刷されます。

私のテキストファイルの入力は次のとおりです。

1 singh
2 sen singh rao singh pal sen jain sen de rao 
3

ここにコードがあります

int main() {
  ifstream in;
  in.open( "Text.txt" );

  string s;
  while(getline(in,s)){
    char x;
    x=in.get();
    if(x=='1'){
      string s;
      in>>s;
    }

    if (x=='2'){
      char c;
      c=in.get();
      c=in.get();
      do{
        string A;
        string B;

        do{
          A=A+c;
          c=in.get();
        } while(c!=' ');

        c=in.get();

        do{
          B=B+c;
          c=in.get();
        } while(c!=' '&&c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5'&&c!='6'&&c!='7');

        cout<<B<<endl;
      }

      while(c!='1'&&c!='2'&&c!='3'&&c!='4'&&c!='5'&&c!='6'&&c!='7');
      if(c!='1'||c=='2'||c=='3'||c=='4'||c=='5'||c=='6'||c=='7'){
        in.putback(c);
      }
    }
  }
}
4

2 に答える 2

2

std::endl改行文字を挿入し、ストリームをフラッシュします。単にフラッシュを使用したいstd::flushが、正直に言うと、ほとんどの場合、どちらも必要ありません。

于 2013-09-14T14:34:54.117 に答える