c++ fwrite 写的时候有回车换行符 但是单开文件有两个回车
时间: 2024-03-19 17:42:44 浏览: 40
这可能是因为不同操作系统的换行符不同所导致的。在 Windows 操作系统中,换行符是由两个字符组成的:回车符(\r)和换行符(\n);而在类 Unix 操作系统中,换行符只有一个字符:换行符(\n)。
当你使用 fwrite 写入数据时,fwrite 不会自动添加换行符,因此你需要手动添加换行符。如果你在 Windows 操作系统中写入一个换行符,则实际上会写入两个字符:回车符和换行符。因此,当你单独打开文件时,会看到两个回车符。
如果你想要避免这个问题,你可以使用其他写入文件的函数,例如 fprintf,它会根据不同的操作系统自动添加正确的换行符。
相关问题
如何用fwrite函数写入换行符
可以使用以下方式在文件中写入换行符:
```c
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen("file.txt", "w");
if(fp == NULL) {
printf("Error opening file\n");
return 1;
}
char *str = "Hello, world!\n";
fwrite(str, sizeof(char), strlen(str), fp);
fclose(fp);
return 0;
}
```
在这个例子中,我们使用 `\n` 来表示换行符,并将它作为字符串的一部分写入文件。使用 `fwrite()` 函数将字符串写入文件时,第三个参数指定字符串的长度,而不包括字符串结束符 `\0`。由于我们使用了 `\n` 来表示换行符,因此需要将其计入字符串的长度。在写入完数据后,使用 `fclose()` 函数关闭文件。
C 读取一个fwrite写的文件内容
要读取一个fwrite写的文件内容,可以使用fread函数。
下面是一个示例代码:
```c
#include <stdio.h>
int main() {
FILE *fp;
char buffer[1024];
size_t read_count;
fp = fopen("example.txt", "rb"); // 以二进制模式打开文件
if (fp == NULL) {
perror("Error opening file");
return 1;
}
read_count = fread(buffer, sizeof(char), sizeof(buffer), fp);
printf("Read %zu bytes from file:\n%s", read_count, buffer);
fclose(fp);
return 0;
}
```
在这个示例代码中,我们使用了fopen函数以二进制模式打开了一个文件。然后,我们使用fread函数从文件中读取了一定数量的字节,并将其存储在一个缓冲区中。最后,我们打印了读取的字节数和缓冲区中的内容。
需要注意的是,在使用fread函数时,我们需要指定每个元素的大小和要读取的元素数量,这里我们使用了sizeof(char)和sizeof(buffer)。同时,我们还需要检查fread函数的返回值,以确保我们成功读取了指定数量的字节。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)