c - 我如何从文件中读取数字

标签 c

乍一看,这可能看起来是一个愚蠢的问题,但我真的被困住了,而且很着急...... 我有一个文件,计算文件中存储的 X 个数字。 我可以用这种方式存储文件中的数字

22 56 102 9 302 

在一个行中,每个数字之间有一个空格。

或者我可以用这种方式将它们储存在一个克隆中

22 
56 
102 
9 
302

无论哪种方式,我都找不到一种简单的方法来检索这些号码并将它们存储在表中以供以后使用。因为问题之一是我不知道每个数字中有多少位(只能是一位数甚至 5 位),所以我无法使用 sscanf

那么你们中的任何人都可以帮助我如何将这些数字添加到表中(无论是单行中的数字还是单冒号中的数字,哪个都很简单)。 (C语言)

(如果这个问题看起来有点愚蠢,我真的很抱歉,但我真的很着急)

editt::文件中的数字数量非常多

编辑2: 这就是我试图做的(如果数字在一个冒号中)

  int i=0,k;
char buffer[500];

fd=fopen("Fdonne.txt", "r");   //fd global variable


 fgets(buffer,300, fd);
while(feof(fd) == 0)
      {
     sscanf(buffer,"%d",tb[i]); //tb already declared also
     i++;
     fgets(buffer,300, fd);
       }

for (k=0; k<(count+1); k++) // count is my X here 
    printf("%d ",tb[k]);

这似乎是最合乎逻辑的事情,但是,通过 ligne 读取 ligne 并使用 sscanf 但 smh 当我运行程序时没有显示任何内容(所以某处存在问题)

最佳答案

如果我理解正确的话,您想要获取数字,您可以在string.SplitLinq的帮助下完成:

  int[] numbers = File
    .ReadLines(@"c:\MyFile.txt")
    .SelectMany(line => line.Split(
       new char[] { ' ', '\t', '\r', '\n' }, 
       StringSplitOptions.RemoveEmptyEntries))
    .Select(item => int.Parse(item))
    .ToArray();

如果想将数字存储在文件中:

 File
   .WriteAllLines(@"c:\SomeOtherFile.txt", numbers);

关于c - 我如何从文件中读取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59469086/

相关文章:

无法跟踪使用 ptrace 和 seccomp 调用 execve 的子进程的系统调用

c - 在C语言中,如何在不将数字转换为字符串的情况下按字典顺序对数字进行排序?

c - 错误 : expected 'asm' before long

c++ - 从二进制文件读取后出现未处理的异常,当控制权返回给调用函数时

c - 在 Windows (ANSI C) (_beginthread/_beginthreadex/CreateProcess) 上 fork() 的任何简单/快速方法

c - Printf 干扰 I2C 模块值读取

c - 为什么这个声明有意想不到的副作用?

c - 如何在结构体中包含宏

无法让 'child' 和 'parent' 正常通信

c++ - 在不简化的情况下在 CUDD 中表示 BDD