我如何从文件中读取数字

时间:2019-12-24 12:48:56

标签: c

乍看之下,这可能是一个愚蠢的问题,但确实很卡住,很着急。 我有一个文件,该文件中存储着X个数字。 我可以用这种方式将数字存储在文件中

22 56 102 9 302 

在单个ligne中,每个数字之间都有一个空格。

或者我可以通过这种方式将它们存放在一个冒号中

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却没有任何显示(因此某处存在问题)

2 个答案:

答案 0 :(得分:0)

如果我理解的正确,您想获取数字,您可以借助string.Split Linq

  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);

答案 1 :(得分:0)

const keysToReplace = {name: 'Simon', gender: 'male', age: 43, country: 'UK'}
let str ='I/'m a #age year old #gender living in the #country';
Object.keys.forEach(key=>{
str = str.replace(`${key}`,keysToReplace[key]);
})