私は入力テキストファイルを持っています。最初の行にはint
の数字がa
とb
、2行目が文字列です。私はfile >> a >> b
を行うために書式化された入力を使い、文字列の文字を一つずつ取得するために書式なしの入力をしたい。 2つのステップの間で、最初の行の末尾にある'\n'
文字をスキップする必要があります。私はC++でフォーマットされた入力からフォーマットされていない入力に切り替える
while(file.get()<=' ' && !file.eof()); // skip all unprintable chars
if(!file.eof()) file.unget(); // keep the eof sign once triggered
を入力フォーマットをより柔軟にするために使用しました。ユーザは数字a
とb
を分離するのと同じ自由度で、任意の数の空白の行'\n'
、タブキー'\t'
、および/またはスペースキー' '
を使用して、数字a
とb
を文字列から分離できるようになりました。 Linuxでは、行末がすべて"\r\n"
になると、Windowsからコピーされたテキストファイルを読むのに問題はありません。
同じことをするifstream
関数があります(次の印刷可能な文字またはEOF
に達するまで、すべての文字をスキップします)。<=' '
? ignore
関数はそうではないようです。
空白が '<= '「'として定義されていないので、これはOPのソリューションと同等ではありません。
あなたはそのようにそれを使用することができます。しかしながら、記載されているように、OPの実際の要件を満たすことができる。 –
ハードコードされた 'n 'を持つ配列へのベクトルを好む –
@ LightnessRacesinOrbit実際には、ユーザー提供のサイズ:PのVLAでした。しかし、修正されました。 –