【问题标题】:c++ char arrays, use in cin.getline()c++ char 数组,在 cin.getline() 中使用
【发布时间】:2011-09-25 23:17:32
【问题描述】:

我有以下代码:

char myText[256];
cin.getline(myText,256);

为什么我必须将字符数组传递给 cin.getline() 而不是字符串?

我已经读过,一般来说使用字符串比使用字符数组更好。如果可能的话,我是否应该在使用cin.getline() 检索输入后将字符数组转换为字符串?

【问题讨论】:

    标签: c++ string arrays


    【解决方案1】:

    您正在使用 istream 的成员方法。在这种情况下,辛。这个函数的详细信息可以在这里找到:

    http://en.cppreference.com/w/cpp/io/basic_istream/getline

    不过你可以使用std::getline

    它使用字符串而不是 char 数组。使用字符串更容易,因为它们知道它们的大小,它们会自动增长等等,而且你不必担心空终止字符等等。也可以使用适当的字符串构造函数将 char 数组转换为字符串。

    【讨论】:

      【解决方案2】:

      我相信这是一件不幸的历史文物。

      不过,您可以改用std::getline free 函数。

      std::string myText;
      std::getline(std::cin,myText);
      

      【讨论】:

      • 由于ADL,你可以只说getline(std::cin, myText);,编译器会自动查找namespace std
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多