gpt4 book ai didi

从 Mac 复制的文件的 CR/LF 问题

转载 作者:太空宇宙 更新时间:2023-11-04 08:14:50 25 4
gpt4 key购买 nike

我写了一个简单的应用程序,它将逐行读取文件并显示它。对于使用 FTP 从 Linux 或 Windows 机器复制的文件,它工作正常。但是对于从 Mac OS X 复制的文件,当我打印该行时,该行的第一个字符没有显示。

如何处理从 Mac OS X 复制的文件?

示例文件:

Hello world 1
Hello world 2

逐行读取后显示:

ello world 1
ello world 2

代码:

/*****Function to add the NULL termination at end of line*********/ 

my_func(char *str, int len)
{
if(len)
{
if(str[len-1] != '\r')
{
str[len] = '\0';
}
else
{
str[len-1] = '\0'
}
}
else
{
str[len]='\0';
}
}

最佳答案

一般来说,您要查找换行符\n 回车符\r。根据系统的不同,您可以获得其中之一,或同时获得两者。因此,您可能需要稍微调整一下您的功能。

如果 len 包含缓冲区中单行的长度,而你只想剪掉尾随的换行符,你可以简单地做这样的事情:

while( len > 0 && (str[len-1] == '\n' || str[len-1] == '\r') ) --len;
str[len] = '\0';

关于从 Mac 复制的文件的 CR/LF 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36416485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com