我需要知道在单词之间出现空格后,何时停止存储文件中的字符串。在我打开一个文件并读取它之后,例如:第一行是: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。