c - 如何在 C 中将文件中的数字字符串作为单独的整数存储在数组中

标签 c arrays readfile c-strings

我在 Sender.txt 中有一个 32 位的文本文件,如

00100100101110001111111100000001

我想将每个单独的数字作为整数存储在数组中。我已经尝试过以下代码但不起作用。

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

void main()
{
  FILE *myfile;
  myfile = fopen("Sender.txt" , "r");
  char data[32];
  int i,con, data1[32];

  for(i=0;i<32;i++)
  {
    fscanf(myfile, "%1s", &data[i]);
  }

  for(i=0;i<32;i++)
  {
    con = atoi(data[i]);
    data1[i]=con;   
  }

  for(i=0;i<32;i++)
  {
    printf("%d \n", &data1[i]);
  }
}

最佳答案

仍然没有完全理解您的努力的目的,我建议重写前两个循环:

for(i = 0; i < 32; i++)
{
    int next = fgetc(myfile);
    data1[i] = (next == '0') : 0 ? 1;   
}

此代码假定文件有 32 个 1 或 0,全部位于同一行,没有其他内容。

这可以进一步压缩,但可能会牺牲清晰度:

for(i = 0; i < 32; i++)
{
    data1[i] = fgetc(myfile) - '0';   
}

关于c - 如何在 C 中将文件中的数字字符串作为单独的整数存储在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41918030/

相关文章:

sql - 为什么 SQL DISTINCT 不能与 ORDER BY CAST 一起使用?

arrays - 如何将结构保存到 Realm ,并包含另一个结构的列表

javascript - 我不断收到 "Uncaught ReferenceError: imgArray is not defined"错误

javascript - NodeJS如何将文件转换为字符串

c - 为什么我的以下 C 代码中出现段错误?

c - 调试和发布可执行文件之间的差异(在示例代码中)在优化的符号和函数方面

c - 我一直在 Mac 上使用 Visual Studio Code。当我尝试编译并运行该程序时,它会弹出一条消息 'Permission denied'

java - 如何使用 java 8 流和功能接口(interface)过滤掉这个列表?

json - Node : reading a big csv file

python - 如何使用 read 方法在 Python 中将字符转换为行