如果txt每行的格式 都是下面这样呢,只提取第二列的数字,描述符应该怎么写。 abcd_len.ahd 1234
时间: 2024-03-16 20:43:27 浏览: 46
数字格式字符串.txt
如果每行的格式都是 `abcd_len.ahd 1234` 这样的话,你可以使用 `%*[^ ] %d` 来忽略掉第一列的字符串,并读取第二列的数字。具体来说,`%*[^ ]` 表示读取一个字符串并忽略它,直到遇到空格为止,然后使用 `%d` 来读取空格后面的数字。例如,你可以使用类似下面的代码来读取每行的第二列数字,并将它存储到数组 `nums` 中:
```c
#define MAX_LINES 1000 // 假设最多有 1000 行数据
int main() {
FILE *fp;
char filename[] = "data.txt";
fp = fopen(filename, "r"); // 打开文件
if (fp == NULL) {
printf("Failed to open file %s\n", filename);
return 1;
}
int nums[MAX_LINES]; // 定义一个数组来存储数字
int i = 0;
while (fscanf(fp, "%*[^ ] %d", &nums[i]) != EOF) {
i++;
if (i >= MAX_LINES) { // 如果超过了最大行数,就退出循环
break;
}
}
fclose(fp); // 关闭文件
// 在这里,你可以使用 nums 数组来进行进一步的处理
// ...
return 0;
}
```
这里使用了 `%*[^ ]` 来忽略掉每行的第一列字符串,并使用 `%d` 来读取第二列的数字。在循环中,将读取到的数字存储到 `nums` 数组中,并递增 `i`。循环结束后,`nums` 数组中就会存储所有行的第二列数字了。
阅读全文