Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C-读取标准数据并将值放入数组中_C_Arrays_Stdin - Fatal编程技术网

C-读取标准数据并将值放入数组中

C-读取标准数据并将值放入数组中,c,arrays,stdin,C,Arrays,Stdin,我有一个关于stdin和将它读取的值放入数组的问题。我编写了一段代码,其中它会询问数组的大小以及它想要输入的值。然而,我想知道是否有一种方法,如果我可以跳过这一切,只是让stdin读取文本文件。差不多 五, 五五五五 第一行是数组的大小,第二行是数组中的值 这就是我所拥有的: int size,y; printf("Enter size of array: "); scanf("%d",&size); V->size=size;

我有一个关于stdin和将它读取的值放入数组的问题。我编写了一段代码,其中它会询问数组的大小以及它想要输入的值。然而,我想知道是否有一种方法,如果我可以跳过这一切,只是让stdin读取文本文件。差不多

五,

五五五五

第一行是数组的大小,第二行是数组中的值

这就是我所拥有的:

      int size,y;

      printf("Enter size of array: ");

      scanf("%d",&size);
      V->size=size;
      V->item=malloc(size * sizeof(int *));
      printf("size of array: %d\n",V->size);

      for(int i =0 ;i < size; i++){
      printf("Enter your value: \n");
      scanf("%d", &y);
      V->item[i]=y;
int大小,y;
printf(“输入数组的大小:”);
scanf(“%d”,大小(&S);
V->size=size;
V->item=malloc(size*sizeof(int*));
printf(“数组大小:%d\n”,V->size);
对于(int i=0;iitem[i]=y;

您想从文件或Stdin中读取吗?这不是一回事

您可以将文件内容重定向到stdin,方法是将其放置在管道上,如:

cat yourfile | ./YourBinary    

如果您想直接从文件中读取,我建议使用open(fd,flags)函数,如果您获得所需的权限,该函数将为您想要打开的文件返回一个文件描述符。这是打开的手册页

要读取标准数据,您必须使用读取(fd,buf,buf_size)功能,如下所示:

char buff[1024];
while(read(filedescriptor, buff, 1023) > 0)
Filedescriptor是一个整数,如果您试图打开一个文件,它可以由open(fd,flags)函数给出;如果您想读取其中一个文件,则可以简单地将0表示stdin,1表示stdout,2表示stderr


我将1023置于读取状态,因为您必须在缓冲区中保留一个字符位置,以便将“\0”放在字符串的末尾。

因此,您希望从文件而不是stdin读取?
cat文件。/MyBinary
将把
cat
的输出重定向到二进制输入。如果您想直接从程序中读取文本文件,您应该了解
fopen()
fscanf()
V->item=malloc(size*sizeof(int*);
-->
malloc(size*sizeof*(V->item));
。当
V->item[i]=y
意味着需要一个
int
@chux-woops]数组时,代码似乎正在分配指针数组。忘记放最后5个。