C语言文件读取如何跳过空格和换行符
时间: 2024-11-06 22:16:45 浏览: 18
在C语言中,当你从文件中读取数据并希望跳过空格和换行符时,可以使用`fscanf`函数配合非空白字符过滤。`fscanf`函数通常用于逐个格式化输入,你可以通过设置匹配模式来忽略这些特殊字符。
例如,如果你想读取一个字符串并跳过其中的空格,可以这样做:
```c
#include <stdio.h>
#define MAX_LINE_LENGTH 100 // 假设最大行长度
int main() {
FILE *file = fopen("example.txt", "r"); // 打开文件
if (file == NULL) {
perror("Failed to open file");
return 1;
}
char line[MAX_LINE_LENGTH]; // 存储读取的字符串
int c;
while ((c = fgetc(file)) != EOF) { // 逐个字符读取
if (c == ' ' || c == '\n') { // 如果遇到空格或换行符
fseek(file, -1, SEEK_CUR); // 将指针回退一位,跳过当前字符
} else if (c != '\0' && c != EOF) { // 非空字符则存储到字符串
line[strlen(line)] = c; // 更新字符串结尾
}
}
line[strlen(line)] = '\0'; // 结束字符串,防止溢出
printf("%s\n", line);
fclose(file);
return 0;
}
```
在这个例子中,`fgetc`用于获取字符,如果遇到空格或换行符就使用`fseek`将指针向前移动一位,跳过这个字符。只有当字符不是空格、换行符或文件结束标志时,才会将其添加到读取的字符串中。
阅读全文