だから、cin.get()
の使い方やバッファの使い方など知っていました。ここでは、テーブルのn(番号または行)とm(列の数)を取得するサンプルプログラムを示します。次に、n * m文字を取得し、配列に保存して出力します。C++でcin.get()を使って行末の文字を取得しない方法
#include <bits/stdc++.h>
using namespace std;
int n, m;
char in;
char a[100][100];
int main()
{
cin >> n >> m;
for(int i = 0;i < n; ++i)
{
for(int j = 0;j < m; ++j)
{
cin.get(in);
a[i][j] = in;
if(j == m - 1)
cin.get();
}
}
for(int i = 0;i < n; ++i)
{
for(int j = 0;j < m; ++j)
cout <<a[i][j];
cout << endl;
}
return 0;
}
このプログラムは、行の最後にいくつかの文字を数えているようです。誰かがそれを修正して私を説明することはできますか?前もって感謝します!
あなたは私たちに入力例をまくことができますか? – Christophe
'#include'と 'namespace std;を使うことは危険な操作です。 g ++のプリコンパイルされたヘッダーでの使用のみを目的とした非標準ヘッダーを使用して、標準ライブラリ全体をほとんど含める。それはあなたが衝突する可能性のある多くの識別子です。幸いにも 'std'名前空間は大虐殺を防ぐ。 'using namespace std;'を除いて、 'string'、' swap'、 'reverse'のような共通名をもつ数万の識別子の地雷を作成し、潜むチャンスを待っている' std'名前空間を指定する必要がなくなります。あなたのプログラムを爆破する。 –
user4581301
パフォーマンスノート: 'cout << endl;'は、改行とともにストリームのフラッシュを強制するので、かなり高価です。速度が必要な場合、 'cout << '\ n';'ははるかに高速です。とにかく一般原則からやって来る価値がある。 – user4581301