无法打印阵列或分配给阵列
can't print the array or assign to it
下面的代码应该从用户那里获取输入char s1[] = "[1 -2.5 3;4 5.25 6;7 8 9.12]";
并只取其中的数字,然后将它们转换为浮点数并将它们放入数组中但是当我尝试对数组进行检查时,它只打印数字
char s1[] = "[1 -2.5 3;4 5.25 6;7 8 9.12]";
char s2 [100] ;
float matrix [2][2];
char* cutter(char s[])
{
char delim[] = " ;][";
char *token = strtok(s,delim);
while (token)
{
cout << token << endl;
token = strtok(NULL,delim);
for(int i=0;i<2;i++){
for(int j=0;j< 2;j++){
matrix [i][j]=strtof(token, NULL);
}
}
}
return token;
}
void showmatrix(float m[2][2]){
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
cout << m[i][j];
}
}
}
int main(){
cutter(s1);
showmatrix(matrix);
//cin.getline(s2,100);
//cutter(s2);
}
您的代码未在我的机器上运行。您应该按照其他人的建议更改循环条件,并在cutter
函数中移动token = strtok(NULL,delim);
代码的位置。
此代码运行:
#include <iostream>
using namespace std;
char s1[] = "[1 -2.5 3;4 5.25 6;7 8 9.12]";
//char s2 [100] ;
float matrix [2][2];
char* cutter(char s[])
{
char delim[] = " ;][";
char *token = strtok(s,delim);
while (token)
{
cout << token << endl;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
matrix[i][j] = strtof(token, NULL);
}
}
token = strtok(NULL,delim);
}
return token;
}
void showmatrix(float m[2][2]){
for(int i=0;i<2;i++){
for(int j=0;j< 2;j++){
cout << m[i][j];
}
}
}
int main(){
cutter(s1);
showmatrix(matrix);
//cin.getline(s2,100);
//cutter(s2);
}
此外,请尝试发布代码的完整示例,包括任何using
声明和包含的标头。
相关文章:
- 二维阵列的动态分配
- 为什么删除分配的阵列会导致内存错误?
- 新的阵列分配
- 分配给阵列时出现分段错误?黑客排名 2D 阵列 - DS.
- 分配/访问2d阵列,使得2d子块是连续的
- 重新分配2D阵列并删除旧阵列
- 轻松C++阵列分配
- 英特尔并行工作室 2015 C++中的 2D 动态分配全局阵列
- 为阵列分配空间
- 无效的char阵列分配
- C++ 2D 阵列分配内存以避免分段错误
- C++ 2D 动态阵列分配
- 全局阵列分配 -- 堆栈或堆
- 阵列分配后跟 memcpy 或带储备的向量
- 在 2D 阵列分配期间对 calloc 进行"expression must have (pointer-to) function type"
- 为动态分配的阵列分配更多内存
- C++全局阵列分配
- 阵列分配问题
- 堆阵列分配而不是堆栈上的堆数组分配
- 使用C++new[]为2D阵列分配内存