gpt4 book ai didi

c - 如何确定 char* 是否为 Windows 行结尾?

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

在我的 C 程序中,我正在逐个字符地查看文件以获取信息。出于某种原因,即使我的代码看起来像下面这样,我的数据也会获取窗口行结束字符。

我尝试了一些方法,比如 temp[0]=='\r\n'

while((temp = fgetc(file)) != EOF)
{
if((temp>=65 && temp<=90) || (temp>=97 && temp<=122) || (temp>=48 && temp<=57) || temp==39){
c[count]=temp;
count++;
}
else
break;

最佳答案

Windows 行尾由两个单独的字符组成,一个回车符 ('\r') 紧跟一个换行符 ('\n')。因为它们是两个字符的组合,所以您无法通过一次只查看一个字符来检测它们。

如果您的代码 Windows 上运行并且文件应该被解释为文本,则以文本模式打开它(例如,“r” 而不是"rb"),并且行终止符应该自动转换为单个换行符。如果您在使用单个换行符作为行终止符的系统上运行(如今大多数 Windows),则不会执行此类转换。在这种情况下,要检测 Windows 风格的行终止符,您需要跟踪紧接的前一个字符是否为 '\r'。如果是这样,并且读取的下一个字符是 '\n',则您检测到行终止符。

但如果 Windows 风格的终止符出现在文件中应该被认为是错误的,那么请考虑通过 dos2unix 或类似的实用程序来修复文件。

关于c - 如何确定 char* 是否为 Windows 行结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56050349/

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