具有特殊字符的 C++ 类型书写效果

c++ type writing effect with special characters

本文关键字:书写 类型 C++ 特殊字符      更新时间:2023-10-16

我一直在做一个控制台项目,该项目将字符一个接一个地打印到控制台中,从而给出类型书写效果。

我看了几篇帖子,到目前为止已经提出了这个:

void printchar(char cal, int speed){
    char str[]={cal};
    int len = strlen(str);
    for(int i=0;i<strlen(str);i++){cout<<myStory[x]; Sleep(speed);}
}
void printmsg(char myStory[], int speed){
    for (unsigned int x=0; x<strlen(myStory); x++){cout << myStory[x]; Sleep(speed);}
}
int main()
{
    char cal[] = {178,177};
    printchar(cal,25);
    cout<<endl;
    printmsg("test",25);
    cout<<endl<<endl;
    return 0;
}

如果我这样做,我可以打印几个 unicode 字符

void printchar(char cal, int speed){
    char str[]={112,78,178,103,178,112};
    int len = strlen(str);
    for(int i=0;i<strlen(str);i++){cout<<myStory[x]; Sleep(speed);}
}

但是在打印 unicode 字符后,我得到了额外的 7 个字符左右。

我想知道如何在没有其他字符的情况下打印 unicode 字符,并且还能够更改 cal 变量,以便我可以定义要在函数外部打印的字符。

理想的情况是,如果我可以在不同的时间打印来自同一函数的 unicode 字符和字符串。

您有几个错误,这里有三个错误:

  • char str[]={cal};后跟strlen(str)调用,则存在未定义的行为strlen函数查找字符串终止符字符'',您尚未将其添加到数组中。

  • char cal[] = {178,177};
    printchar(cal,25);
    

    您调用一个函数,该函数采用具有char数组的单个char

  • printchar 函数中,引用未声明的 myStory 变量。

可能还有其他问题。

编译时启用警告(如果您使用的是 GCC 或 Clang,请至少添加 -Wall 选项(,然后阅读所有警告和错误消息。看看他们引用的行。尝试了解错误和警告的含义。修复错误和警告的原因。在修复警告时,不要只是试图通过简单的类型转换等来隐藏它们,而是真正修复它们。如果你不明白为什么你会收到错误和警告,你永远不会成为一名程序员。