在C++编程中,如何为用户输入设计一个函数,能够接受多行指定长度的数字字符串,并将这些数据有效地组织成一个二维字符数组,以便后续的数据操作和存储?
时间: 2024-11-09 13:30:20 浏览: 21
C++中带空格字符串的输入问题解决
在C++中,你可以创建一个函数来接收用户的多行输入并将其存储在一个二维字符数组中。以下是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
// 定义二维字符数组的大小
const int ROWS = 10;
const int COLS = 20;
// 函数定义,用于接收多行输入并填充二维字符数组
void inputToMatrix() {
char matrix[ROWS][COLS]; // 初始化二维数组
int lineCount = 0; // 记录当前行数
while (getline(cin, matrix[lineCount], '\n')) { // 使用getline逐行读取,直到遇到换行符
if (lineCount == ROWS) break; // 如果已达到预设行数,则停止输入
// 检查是否超过指定长度
if (matrix[lineCount].length() > COLS - 1) {
cout << "Line exceeds maximum length, please enter a shorter string.\n";
continue;
}
lineCount++; // 进入下一行
}
// 打印输入的内容
for (int i = 0; i < lineCount; i++) {
cout << "Row " << i + 1 << ": ";
for (int j = 0; j < COLS; j++) {
if (matrix[i][j] != '\0') { // 忽略空格
cout << matrix[i][j];
} else {
cout << " ";
}
}
cout << endl;
}
}
int main() {
inputToMatrix();
return 0;
}
```
这个函数首先创建一个指定大小的二维字符数组,然后使用`getline`从标准输入流(通常是键盘)逐行读取用户输入。每一行的输入会被存储到对应的数组元素中,如果输入超过设定的列数,会给出提示并跳过该行。最后,程序会显示用户输入的字符串矩阵。
阅读全文