gpt4 book ai didi

c - C语言中的\r到底是什么?

转载 作者:太空狗 更新时间:2023-10-29 16:36:57 25 4
gpt4 key购买 nike

#include <stdio.h>

int main()
{
int countch=0;
int countwd=1;

printf("Enter your sentence in lowercase: ");
char ch='a';
while(ch!='\r')
{
ch=getche();
if(ch==' ')
countwd++;
else
countch++;
}

printf("\n Words =%d ",countwd);

printf("Characters = %d",countch-1);

getch();
}

这是我遇到 \r 的程序。它在这里的作用究竟是什么?我是 C 语言的初学者,我很欣赏对此的清晰解释。

最佳答案

'\r' 是回车符。它的主要用途是:

  1. 当以二进制模式阅读文本或可能来自外部操作系统的文本时,由于 Windows 格式文本文件中的 CR/LF 行结尾,您会发现(并且可能想要丢弃)它。

  2. stdoutstderr 上写入交互式终端时,'\r' 可用于将光标移回到行首,用新内容覆盖它。这是一个很好的原始进度指示器。

您帖子中的示例代码绝对是 错误 '\r' 的使用方式。它假定回车符将位于输入行末尾的换行符之前,这是不可移植的,并且仅在 Windows 上为真。相反,代码应该查找 '\n'(换行符),并丢弃它在换行符之前找到的任何回车符。或者,它可以使用文本模式并让 C 库处理翻译(但文本模式很丑陋,可能不应该使用)。

关于c - C语言中的\r到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9643077/

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