读取由多个空格分隔的整数

时间:2015-11-05 21:24:40

标签: c formatting text-files scanf

我有一个包含一定行数的文本文件,每行包含一定数量的整数。整数写在一个空格的一个标签(固定宽度)内,因此它们之间的空间随整数的长度(以数字为单位)而变化。

我想逐行处理文件,但由于整数之间的间距不同,我不知道如何阅读它们,也不知道如何以优雅的方式检测换行符。

为了更好的图片,可以想象整数在列中对齐,每列都是标签宽度。

1 个答案:

答案 0 :(得分:2)

int nums[6][4]; // say it is a 6-line-4-integers-per-line text file

File *fp = fopen("file.txt", "r");

int i;
for(i = 0; i < 6; i++) {
    fscanf(fp, "%d %d %d %d", &nums[i][0], &nums[i][1], &nums[i][2], &nums[i][3]);
}
fclose(fp);

因为空格()与文字空格不匹配,而是与空格(直到“真实”字符)匹配,这应该有用。