按行读取txt文件,每一行最后都会多出一个换行符,怎么把换行符去掉,用C语言
时间: 2024-05-11 10:19:28 浏览: 201
可以使用C语言中的字符串处理函数 `strtok()` 和 `strcspn()` 来去掉每一行末尾的换行符。
具体实现步骤如下:
1. 使用 `fgets()` 函数读取一行字符串,保存到一个字符数组中;
2. 使用 `strcspn()` 函数获取该字符串中第一个换行符的位置;
3. 如果该字符串中存在换行符,将其替换为字符串结束符 `\0`;
4. 处理完该行字符串后,继续读取下一行。
下面是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
FILE *fp;
char line[100]; // 存储每一行字符串的数组
size_t len;
fp = fopen("file.txt", "r");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
while (fgets(line, sizeof(line), fp)) {
len = strcspn(line, "\n"); // 获取第一个换行符的位置
if (len < strlen(line)) {
line[len] = '\0'; // 将换行符替换为字符串结束符
}
printf("%s\n", line);
}
fclose(fp);
return 0;
}
```
注意,这里假设每一行的长度不超过 100 个字符。如果需要处理更长的行,需要相应地调整数组大小。
阅读全文