c语言(c++的特殊符号输出)

在C语言中,相信很多人尝试过进行“%”的输出,常规的
printf("%d\n"); 肯定是行不通的,这里需要注意的是在c语言中对“%”和“\”的输出是可以的,但是输出格式不能直接进行输出,编译器在编译的时候会把"\“理解成单个字符”",同理,也会把"%%"理解成单个字符“%”。
具体演示如下:
c语言(c++的特殊符号输出)
代码:

#include<iostream>
#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
int main()
{
	printf("%%d\n");
	printf("\\n\n");
	cout<<"%d"<<endl;
	cout<<"\\n"<<endl;
} 

    
    
  • 自己可以试一下,同样这里你也可以看到使用c++的cout进行字符串输出的时候,单个%是可以识别的,而“\”则不能被直接识别,识别规则与c相同
    如果感兴趣的话,也可以自己深入学习一下底层的编译原理。

知识点虽然小,但是一出问题不得了啊

不信各位看,牛客2022年除夕AK场c题
c语言(c++的特殊符号输出)
题解代码【当时改的简直是气人呜呜呜】
所以平时学习一定要脚踏实地,再小的知识点都应该及时记下来
c语言(c++的特殊符号输出)

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,i,j;
    scanf("%d",&n);
    for(i=1;i<=2*n+1;i++)
    {
        for(j=1;j<=2*n+1;j++)
        {
            if(i<n+1)
            {
                if(j==i)
                    cout<<"\\";					//一定要两个杠杠啊
                else if(j==2*n+2-i)
                    cout<<'/';
                else if(j==n+1)
                    cout<<"|";
                else
                    cout<<' ';
            }
            else if(i==n+1)
            {
                if(j==i)
                    cout<<'O';
                else
                    cout<<'-';
            }
            else
            {
                if(j==2*n+2-i)
                    cout<<"/";
                else if(j==i)
                    cout<<"\\";
                else if(j==n+1)
                    cout<<"|";
                else
                    cout<<' ';
            }
        }
        printf("\n");
    }
    return 0;
}
上一篇:66、宏名与函数名重名


下一篇:求函数值