C 从文件加载列

C 从文件加载列,c,C,我是一个初学者,我必须编写一个从文件中读取列的程序。我把我能写的东西扔掉。我不知道如何只加载一个选定列,以及如何处理数组的大小 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main () { FILE *pr; char fname[100]; int i, n; char tablica[100][100]; printf (

我是一个初学者,我必须编写一个从文件中读取列的程序。我把我能写的东西扔掉。我不知道如何只加载一个选定列,以及如何处理数组的大小

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
#include <stdlib.h>

 int main ()

 {
  FILE *pr;
  char fname[100];
  int i, n;


  char tablica[100][100];



  printf ("File name\n");
  scanf ("%s", &fname);
  pr = fopen(fname,"r");


  if (pr == NULL) 
  {
  printf ("can't load file\n");
  exit(-1);
  }

  printf ("column number\n");
  scanf ("%d",&i);
  if (i == NULL)
  { 
      printf ("no column\n");
  }



  while (!feof(pr)) 
  {
  fscanf(pr, "%s",&tablica[i]);
  printf ("%s\n",tablica[i]);
  }
  fclose (pr);
 }
\define\u CRT\u SECURE\u NO\u警告
#包括
#包括
int main()
{
档案*pr;
char-fname[100];
inti,n;
字符表[100][100];
printf(“文件名\n”);
scanf(“%s”和&fname);
pr=fopen(fname,“r”);
如果(pr==NULL)
{
printf(“无法加载文件\n”);
出口(-1);
}
printf(“列编号\n”);
scanf(“%d”、&i);
如果(i==NULL)
{ 
printf(“无列”);
}
而(!feof(pr))
{
fscanf(pr、%s、&tablica[i]);
printf(“%s\n”,tablica[i]);
}
fclose(pr);
}

文件加载错误,因为
scanf(“%s”和&fname)
将文件名读取到地址
fname
的地址,该地址错误


尝试只传递字符数组的基址
fname
比如,
scanf(“%s”,fname)

我不确定问题是什么。你没有告诉我们你的确切问题是什么:)?当前代码有什么错误?您能给我们看一个文件示例吗?所以您想计算文件中的列数吗?为什么有这么多空行?代码必须只打印出一个选定的列。现在打印整个文件。示例文件是:col01 col02 col03 col04 aa 10 11 31 bb 20 21 32 cc 30 31 33 dd 40 41 43