c++ - 读取在空闲存储上分配的数组的字符

标签 c++ pointers

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

最佳答案

一步一个脚印。

在空闲存储上分配一个数组:

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。

关于c++ - 读取在空闲存储上分配的数组的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41255272/

相关文章:

c++ - 类接口(interface)重复

C++:引用和指针的_实现_有什么大的不同

创建指向二维数组的指针

c++ - Unreal 未完全链接

C++ 代码在 Linux 上比在 Windows 上慢得多

c++ - OpenCV,在显示图像时读取用户文本输入(使用 waitKey)

成对的 C++ vector

c++ - 在类中动态分配对象指针的二维数组

c++ - C++中使用指针调用函数

c - 如何在C中将一个数组的数据复制到另一个数组?