コード
次のプログラムを作成しました。
#include <iostream>
void f(char v[])
{
for(char* p = v; *p != 0; p++)
{
std::cout << *p << std::endl;
}
}
int main()
{
std::cout << int(' ') << std::endl;
char c[256];
std::cin >> c;
f(c);
return 0;
}
コンパイラ
GNUGCCコンパイラを使用してCode::Blocksで-std=c ++ 0xフラグを使用してコンパイルしました(警告なし)。
問題
私が抱えている問題は、1つ以上のスペース(つまり「1と2」)を含む文字列を入力すると、最初のスペースの前の文字だけが印刷されることです(つまり、「o」、「n」、「e」)。
私が試したこと
頭に浮かんだのは、簡単なリアリティチェックを行うことだけでした。次の行を追加しました:
std::cout << "Val: " << int(' ') << std::endl;
そして、予想通り、出力される値は0ではありません(明らかに、nullの「\ 0」文字ではないため)。..
何が欠けているのかわかりません。次の行の場合ですか?
std::cin >> c;
ある種の終了文字として''を使用しますか?
ありがとう。