c矩阵代码的正确方向?

c矩阵代码的正确方向?,c,matrix,C,Matrix,我的指导老师说,开始这项工作的方法是使用我们书中的getline()函数,然后从行中获取数字,然后将这些数字转换成矩阵形式,我不明白为什么要使用getline //最终,该代码应该接受一个平方矩阵,从2x2到6x6 //计划是让它在一行中读取,然后从这行中获取数字, //然后以矩阵形式打印出数字。这就是今天的目标。 //稍后,我将尝试让实际的矩阵部分工作 #include <stdio.h> #include <stdlib.h> #include <math.h&

我的指导老师说,开始这项工作的方法是使用我们书中的getline()函数,然后从行中获取数字,然后将这些数字转换成矩阵形式,我不明白为什么要使用getline

//最终,该代码应该接受一个平方矩阵,从2x2到6x6 //计划是让它在一行中读取,然后从这行中获取数字, //然后以矩阵形式打印出数字。这就是今天的目标。 //稍后,我将尝试让实际的矩阵部分工作

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

//error list for error checking will need later I guess (from my notes)
#define ENDOFFILE -1 
#define TOOMANYNUMS -2
#define LIMIT  256

//functions declared
int get_line(char line[], int);

//main
main(){
char line[255];
int num[6];
printf("Please input numbers %c: ", line);
get_line(line,LIMIT);


}

//functions 
  int get_line(char s[],int lim){
  int c, i;
    for (i=0;i<lim-1 && (c=getchar())!=EOF && c!='\n'; ++i)
  s[i] = c;
if(c=='\n'){
s[i]=c;
  ++i; 
}
s[i]='\0';
return i;
}
#包括
#包括
#包括
//错误检查的错误列表将需要以后我猜(从我的笔记)
#定义ENDOFFILE-1
#定义TOOMANYNUMS-2
#定义限制256
//声明的函数
int get_行(字符行[],int);
//主要
main(){
字符行[255];
int-num[6];
printf(“请输入数字%c:,行);
获取_行(行、限制);
}
//功能
int get_行(字符s[],int lim){
int c,i;

因为(i=0;i
getline
不仅返回行的长度,它还将第一行复制到
s
参数中。因此,在调用
getline(line,LIMIT)
(顺便说一句,它不将返回值存储在任何位置)之后,
line
变量将包含第一行


编辑:我还应该指出,调用getline上方的
printf
引用的是
line
变量,它是未初始化的字符数组,不是单个字符getline(char[],int)函数使用getchar()从控制台读取字符,并将其存储在数组s[]中。数组s[]指向与main()函数中的line[]数组相同的内存。

“计划是读入一行…”“我不明白为什么要使用getline”。断开连接在哪里?getline只返回行的长度,为什么需要它?您的get_line()实现太糟糕了,请看一看ANSI C函数“fgets”@RD for testing purposed如何打印我键入的行?我调用了getline(),然后:printf(“%d”,line);并且无论键入什么,我都会得到相同的输出:2673685。变量行是指向包含字符的内存位置数组的指针。当您将%d与printf()一起使用时您要求的是存储在第行的整数值,即2673685。这是数组中第一个位置的内存地址。请尝试使用%s或函数puts()。我不确定您的意思,因此我不知道如何解决此问题。我原以为我知道您的意思,并尝试解决此问题,但只出现了更多错误。