如何在 C++ 中从用户那里获取具有预定义字符串长度的字符串输入?
how to get a string input from user with pre-defined string length in C++?
我正在尝试从用户那里获取一个长度为 8 个字符的字符串。
用户必须连续输入字符串。一旦字符串达到 8 个字符,它就必须转到代码的下一行。
我已经尝试过数组和循环。但是,它要求用户在输入每个字符后按回车键。
string str;
int b;
std::cin>>str.length(8);
这可以通过以下方式完成
char str[100], input;
int idx = 0;
while( scanf("%c", &input ) == 1 ) {
str[idx++] = input;
if( idx >= 8 ) break; // or your desire length of string
}
这可以通过多种不同的方式完成。
试试这个
std::string str;
str.resize(8);
for (int i = 0; i < 8; ++i)
std::cin >> str[i];
或者
std::string str;
str.resize(8);
for (int i = 0; i < 8; ++i)
str[i] = std::cin.get();
或者
std::string str;
str.resize(8);
std::cin.read(&str[0], 8);
或者
char arr[9];
std::cin >> std::setw(9) >> arr;
std::string str(arr, 8);
我正在尝试从用户那里获取一个长度为 8 个字符的字符串。 用户必须连续输入字符串。一旦字符串达到 8 个字符,它就必须转到代码的下一行。
我已经尝试过数组和循环。但是,它要求用户在输入每个字符后按回车键。
string str;
int b;
std::cin>>str.length(8);
这可以通过以下方式完成
char str[100], input;
int idx = 0;
while( scanf("%c", &input ) == 1 ) {
str[idx++] = input;
if( idx >= 8 ) break; // or your desire length of string
}
这可以通过多种不同的方式完成。
试试这个
std::string str;
str.resize(8);
for (int i = 0; i < 8; ++i)
std::cin >> str[i];
或者
std::string str;
str.resize(8);
for (int i = 0; i < 8; ++i)
str[i] = std::cin.get();
或者
std::string str;
str.resize(8);
std::cin.read(&str[0], 8);
或者
char arr[9];
std::cin >> std::setw(9) >> arr;
std::string str(arr, 8);