単純なファイル入力にfscanfを使用するのは慣れています。でも、私はストリームに移動しようとしていると私はこれを行うことができるようにしたいと思います:あなたはそれを固執する、ファイルを読みするのは比較的簡単だ見ることができるようストリームのfscanfタイプの機能?
fscanf(file, %d %s, int1, str1);
まずあなたが一つに出くわすint型最初の文字列をchar *に変換します。私が望むのは、ストリーム関数を使ってfstreamでこれを行うことです。これは、限られたストリームの知識で私が思いついたものです。
while((fGet = File.get() != EOF))
{
int x;
int y;
bool oscillate = false;
switch(oscillate)
{
case false:
{
x = fGet;
oscillate = true;
break;
}
case true:
{
y = fGet;
oscillate = false;
break;
}
}
}
基本的にファイルをスキャンして、最初のintをxに、2番目の値をyに入れたいとします。
これはいくつかの理由で、あなたが分かるようにかなり悪いですが、実際にはこれを使用することはありませんが、それは私が考えることができるすべてです。これについてもっと良い方法がありますか?
なぜあなたの初期の記述にはintとchar *がありますが、あなたの擬似コードには2つの 'int'sがありますか? @マットのため、 –
です。それは本当に笑です。私はちょうど違う気がした。 – Jcrack
@MooingDuck:私は一般的に解決策に同意しますが、 'str1'が' char * '宣言されていれば間違いなく 'if(in >> int1 >> std :: setw(size )>> str1){...} '。もちろん、 'fscanf()'の使用にも同様の問題がありますが、 'char *'への入力はサイズが制約されていない限り、 'gets()'と基本的に同じです。 –