【问题标题】:read character array with cin.get使用 cin.get 读取字符数组
【发布时间】: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 个charcin.get(str, MAX)

标签: c++ input char c-strings


【解决方案1】:

while 语句中的条件无效。有错别字

while (index < MAX -1 &&
        (str[index++]==cin.get()) != '\n');
                     ^^^

while (index < MAX -1 &&
        (str[index++] = cin.get()) != '\n');

考虑到换行符'\n'可以存储在结果字符串中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    相关资源
    最近更新 更多