如果我知道会有(空格)###(空格),我可以从C中的文本文件读取一个int吗?

时间:2015-09-23 16:58:35

标签: c input

在读取文本文件时,是否有可能接受未知大小的整数值(假设它适合int),因为它在数字之前和数字之后会有一个空格。 例如。 363 865 我想将363和865各自存储为拥有自己的int变量 有了这个说,如果我添加字符可以这样做吗? 例如。取数字并将它们存储为变量! 363 865 所以做同样的事情,但不要触摸文本。

2 个答案:

答案 0 :(得分:1)

如果您知道有多少号码,那么您可以使用fscanf -

例如,如果有2个数字 -

fscanf(fp,"%d %d",&num1,&num2);  // fp - file pointer ,num1 and num2 are integer variables 

或者如果您不知道有多少号码  你可以使用fgets -

fgets(buffer,1000,fp);       // buffer char array of size 1000 and fp file pointer 

并使用函数strtokbuffer进行标记并使用atoi将其转换为数字。

答案 1 :(得分:0)

%d格式说明符将占用前导空格,这也适用于fscanf

#include <stdio.h>

int main(void)
{
    char str[] = " 363 865 ";
    int a, b;
    if (sscanf(str, "%d%d", &a, &b) == 2)
        printf("%d,%d\n", a, b);
    else
        printf("Bad input\n");
    return 0;
}

节目输出

363,865