鱼C论坛

 找回密码
 立即注册
查看: 950|回复: 8

[已解决]第六课第三个疑问,请高手解答一下

[复制链接]
发表于 2023-8-10 22:45:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HDC hdc;
    PAINTSTRUCT ps;
    RECT rect;
    static TCHAR szBuffer[] = TEXT("Hiding from the rain and snow.\n \
Trying to forget but I won't let go.\n \
Looking at a crowded street.\n \
Listening to my own heart beat.\n\n \
So many people all around the world.\n \
Tell me where do I find someone like you girl.");

    switch (message)
    {
    case WM_PAINT:
        hdc = BeginPaint(hwnd, &ps);
        GetClientRect(hwnd, &rect);
        DrawText(hdc, szBuffer, -1, &rect, DT_CENTER | DT_WORDBREAK | DT_EDITCONTROL);
        EndPaint(hwnd, &ps);
        return 0;

    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }

    return DefWindowProc(hwnd, message, wParam, lParam);
}

-------------------------------------------------------------------------------------------------
为什么\n后面还有个\,删掉后面这个\就会出错
最佳答案
2023-8-10 22:58:40
常德水鱼村 发表于 2023-8-10 22:52
请问一下,这个\n换行,那么后面那个\是什么意思,删除就报错。还是window的换行符号是\n  \

\表示这一行代码没有结束,接着看下一行的,\去掉就相当于这行代码在字符串之间断了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-10 22:46:06 | 显示全部楼层
在C语言中,反斜杠(\)被用作转义字符,用于表示特殊字符或特定的字符序列。在这段代码中,\n代表换行符。

在字符串常量中,如果想要在文本中插入一个反斜杠字符,需要使用两个反斜杠(\\)来表示。因此,如果删除代码中的\,会导致编译错误。

所以,这段代码中的\是用来转义反斜杠字符本身,以确保字符串常量中的\n被正确解释为换行符。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-10 22:49:06 | 显示全部楼层
isdkz 发表于 2023-8-10 22:46
在C语言中,反斜杠(\)被用作转义字符,用于表示特殊字符或特定的字符序列。在这段代码中,\n代表换行符。 ...

请假一下为什么这里是\n \  而不是\\n
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-10 22:51:21 | 显示全部楼层
常德水鱼村 发表于 2023-8-10 22:49
请假一下为什么这里是\n \  而不是\\n

\n是换行,\\n是反斜杠加n,这两个不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-10 22:52:56 | 显示全部楼层
常德水鱼村 发表于 2023-8-10 22:49
请假一下为什么这里是\n \  而不是\\n

请问一下,这个\n换行,那么后面那个\是什么意思,删除就报错。还是window的换行符号是\n  \

这里前面没有\

这里前面没有\
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-10 22:58:40 | 显示全部楼层    本楼为最佳答案   
常德水鱼村 发表于 2023-8-10 22:52
请问一下,这个\n换行,那么后面那个\是什么意思,删除就报错。还是window的换行符号是\n  \

\表示这一行代码没有结束,接着看下一行的,\去掉就相当于这行代码在字符串之间断了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-10 23:33:46 | 显示全部楼层
准确的说是
一行字符串太长想换到下一行的时候在相应的地方加上 \ 。
就如
"abcdef" 想把 "def" 在一下行输
那么就在c后面加\
"abc\
def"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-10 23:59:50 | 显示全部楼层
ba21 发表于 2023-8-10 23:33
准确的说是
一行字符串太长想换到下一行的时候在相应的地方加上 \ 。
就如


不一定是字符串,c中也可以这样
    pri\
ntf("\
hi");
不过不能有缩进
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-11 10:35:57 | 显示全部楼层
歌者文明清理员 发表于 2023-8-10 23:59
不一定是字符串,c中也可以这样

不过不能有缩进

这样不行吧。
是不是你的编译器比效特殊?你再去看看。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 20:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表