如何将输入保存到char数组C ++?
我遇到的问题是我事先并不知道用户会提供多少输入。
我只想使用数组和字符。
答案 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
个,没有固定大小。
您可以使用char
和cin >>
将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