【发布时间】:2020-09-09 22:06:48
【问题描述】:
我尝试编写一个最多包含 20 个字符并将它们索引为字符数组的程序,然后打印出该数组。程序编译,但输出是随机单词和符号代替变量。知道为什么吗?
# include <iostream>
using namespace std;
int main ()
{
const int MAX = 20;
char str[MAX];
int index = 0;
while (index < MAX -1 &&
(str[index++]==cin.get()) != '\n');
str[index]='\0';
cout<<"What i typed is _"<<str<<endl;
return 0;
}
【问题讨论】:
-
C++ 中的字符数组通常称为
std::string。 -
istream有一个重载的get(),它一次读取整个数组,直到读取count-1或遇到'\n'。无需手动读取 1 个char:cin.get(str, MAX)