c-当有空间时,如何停止存储文件中的字符



我需要知道在单词之间出现空格后,何时停止存储文件中的字符串。在我打开一个文件并读取它之后,例如:第一行是:427 671+。我需要将"427"存储在一个int数组中,与变量中的"671"one_answers"+"相同。

到目前为止,我已经想好了如何读取整行并打印它,但我的问题是逐个读取字符,并在遇到空格之前将其存储。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>
#include <Laboratorio.h>
#include <string.h>
int main(int argc, char **argv) {
  FILE *datos;
  FILE *resultados;
  char bin[64]="",hex[16]="";
  int oct[21];
  ep = fopen ( argv[1], "r" );
  if (ep==NULL) {
        printf("Archivo vacio.");
    return 0;
    }else{
    while (fgets(bin,64,ep)!=NULL){
      printf("%s",bin);
    }
  fclose(ep);
}
}

最简单的方法是有一个char变量,并将每个char逐个存储到其中,如下所示:

while ((ch = getc(stream)) != EOF) 
{
// do stuff with char
}

得到char后,您可以决定如何处理它,将它与32(空格)进行比较,以知道何时停止。

如果char是一个数字,你可以把它放在缓冲区中,直到你到达一个空间,那么你所需要做的就是使用函数atoi,它接收一个指向字符串的指针,并返回字符串的int表示。例如:将字符串"432"转换为int 432。

相关内容

  • 没有找到相关文章

最新更新