C语言文件内容粒度转置
时间: 2023-07-04 20:04:56 浏览: 47
如果你想要将一个文件的内容粒度转置,即将文件中每一行的内容看做一个单元,然后将每个单元中的字符顺序颠倒过来,可以使用以下C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char *str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
int main() {
FILE *fp = fopen("file.txt", "r+");
if (fp == NULL) {
printf("Failed to open the file.\n");
return 1;
}
char line[100];
while (fgets(line, 100, fp) != NULL) {
reverse_string(line);
fprintf(fp, "%s", line);
}
fclose(fp);
return 0;
}
```
上述代码中,我们首先打开了一个文件,然后使用 `fgets` 函数读取文件中的每一行内容,并将其存储在 `line` 字符数组中。接着,我们调用 `reverse_string` 函数,将 `line` 中的字符顺序颠倒过来。最后,我们使用 `fprintf` 函数将修改后的 `line` 内容写回到文件中。
需要注意的是,我们使用了 `r+` 模式打开文件,这表示我们可以读取文件内容,也可以写入文件内容。在每次写入内容之前,我们需要将文件指针移到文件末尾,以便将内容追加到文件末尾而不是覆盖原有内容。