读取在免费商店

时间:2016-12-21 04:47:44

标签: c++ pointers

我正在为c ++做一本书,并且有一个问题需要制作一个程序,将 cin 中的字符读入您在免费商店中分配的数组中。 它进一步要求读取单个字符,直到输入感叹号。 我是指针的新手,我不知道该怎么做。 它还禁止使用std :: string并告诉我不要关心内存耗尽。 请帮忙!!!

1 个答案:

答案 0 :(得分:2)

一次一步。

在免费商店分配数组:

char * ptr_char_array = new char[SIZE];

将字符读入数组:

unsigned int chars_remaining = SIZE;
char * p = ptr_char_array;
while ((chars_remaining > 0) && (cin >> *p++))
{
  --chars_remaining;
}

在读取感叹号时停止阅读:

char c;
while ((chars_remaining > 0) && (cin >> c))
{
  if (c == '!')
  {
     break;
  }
  *p = c;
  ++p;
  --chars_remaining;
}

更好的方法是使用std::stringstd::vectorstd::getline,我将其留作OP的研究。