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