我正在写一本关于 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::string
、std::vector
和 std::getline
,我将其留作研究对于 OP。
关于c++ - 读取在空闲存储上分配的数组的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41255272/