将输入保存到char数组C ++中

时间:2017-11-15 15:26:27

标签: c++ arrays input char

如何将输入保存到char数组C ++?

我遇到的问题是我事先并不知道用户会提供多少输入。

我只想使用数组和字符。

6 个答案:

答案 0 :(得分:0)

您可以使用std:string

#include <iostream>
#include <string>

int main()
{
    std::string s;
    std::cin >> s;

    const char *cstr = s.c_str();

    std::cout << cstr;
}

答案 1 :(得分:0)

#include <iostream>
#include <string>

int main()
{
  std::string foo;
  std::getline(std::cin, foo);

  std::cout << "Text: [" << foo << "]" << std::endl;
  const char* asCStr = foo.c_str();  

  std::cout << "Text: [" << asCStr << "]" << std::endl;
}

您可以将std :: string转换为char指针,如代码段的第二部分所示。

答案 2 :(得分:0)

您可以使用vector char个,没有固定大小。 您可以使用charcin >>push_back添加到vector

#include <vector>
#include <iostream>

int main()
{
    char myChar;
    std::vector<char> myInputs = {};

    while(true)
    {
        std::cin >> myChar;
        myInputs.push_back(myChar);

        for(char& i: myInputs)
        {
            std::cout << "input:" << i << std::endl;
        }
    }

    return 0;
}

答案 3 :(得分:0)

如果您认为用户将输入多个字符,请务必将其更改为字符串数组。下面是如何将数据输入数组并打印出来的方法。 count是将输入的值的数量,因此您可以将其更改为更多或更少。

#include <iostream>
using namespace std;

int main()
 {
   int count = 5;
   string data;
   string stringArray[count];
   for(int i = 0; i<count; i++)
   { 
     cout << "Enter a value";
     cin >> stringArray[i];
    }

    for(int i=0; I < count; i++)
    {
     cout << stringArray[i] << " ";
     }
      return 0;
     }

答案 4 :(得分:0)

如果您仅使用char而不是std::string或甚至std::vector(基本相同)的数组,您可以使用{{1}动态分配数组和new[](使用delete[]来避免内存泄漏)。

您可以阅读更多相关信息并找到示例here

如果您不想打开链接,请转到learncpp.com并跳转到第6.9a课。我还建议阅读上一课,以了解有关动态内存分配的更多信息。

答案 5 :(得分:-1)

你可以使用getline()或std :: cin&gt;&gt; std :: string some_string

相关问题