有趣的C编程技巧
1.使用“scanf()”的返回值检查文件结束:
while(〜scanf(“%d”,&n)){
/ *您的解决方案* /
}}
在在线判断非常有用,其中输入由EOF终止。
%m只在“errno == 0”时打印“Success”,它是最后观察到的错误状态的字符串表示的缩写。例如,如果一个函数在printf之前失败,那么它将打印一些不同的东西。 *:
3.具有0和1的整数变量的隐式初始化。
main(i){
printf(“g =%d,i =%d \ n”,g,i);
5.使用任何循环,goto,递归打印数字1到200
#include <stdio.h>
#define STEP1 step();
#define STEP2 STEP1 STEP1
#define STEP4 STEP2 STEP2
#define STEP8 STEP4 STEP4
#define STEP16 STEP8 STEP8
#define STEP32 STEP16 STEP16
#define STEP64 STEP32 STEP32
#define STEP128 STEP64 STEP64
#define STEP256 STEP128 STEP128
int n = 0;
int step()
{
if (++n <= 200)
printf(“%d\n”, n);
}
int main()
{
STEP256;
return 1;
}
6. C ++吮吸?
#include <stdio.h>
double m [] = {7709179928849219.0,771};
int main()
{
m [1]-Δm[0] * = 2,main():printf((char *)m);
}}
1.使用“scanf()”的返回值检查文件结束:
while(〜scanf(“%d”,&n)){
/ *您的解决方案* /
}}
在在线判断非常有用,其中输入由EOF终止。
2.“%m”在printf()中使用时打印“Success”:
printf(“%m”);%m只在“errno == 0”时打印“Success”,它是最后观察到的错误状态的字符串表示的缩写。例如,如果一个函数在printf之前失败,那么它将打印一些不同的东西。 *:
3.具有0和1的整数变量的隐式初始化。
main(i){
printf(“g =%d,i =%d \ n”,g,i);
}}
5.使用任何循环,goto,递归打印数字1到200
#include <stdio.h>
#define STEP1 step();
#define STEP2 STEP1 STEP1
#define STEP4 STEP2 STEP2
#define STEP8 STEP4 STEP4
#define STEP16 STEP8 STEP8
#define STEP32 STEP16 STEP16
#define STEP64 STEP32 STEP32
#define STEP128 STEP64 STEP64
#define STEP256 STEP128 STEP128
int n = 0;
int step()
{
if (++n <= 200)
printf(“%d\n”, n);
}
int main()
{
STEP256;
return 1;
}
6. C ++吮吸?
#include <stdio.h>
double m [] = {7709179928849219.0,771};
int main()
{
m [1]-Δm[0] * = 2,main():printf((char *)m);
}}
你会惊讶地看到输出:C ++ Sucks
7.你知道C的“GOES TO - >”运算符吗?
实际上 - >不是运算符。事实上,它是两个单独的运算符的组合,即 - 和>。要了解“转到”操作符的工作原理,请通过以下代码段。
在该示例中,存在条件代码,其递减变量x,同时返回x的原始(不递减)值,然后使用>运算符将原始值与0进行比较。
int _tmain(){
int x = 10;
while( x –> 0 ) // x goes to 0
{
printf(“%d “, x);
}
printf(“\n”);
}
输出:
9 8 7 6 5 4 3 2 1 0
按任意键继续 。 。 。
8. Scanf魔法
scanf(“%[^,]”,a); //这不会删除逗号
scanf(“%[^,]”,a); //这一个删除逗号
scanf(“%[^ \ n] \ n”,a); //它将读取,直到遇到'\ n',然后删除'\ n'
scanf(“%* s%s”,last_name); // last_name是一个变量
9.添加不带“+”运算符的数字
int Add(int x,int y)
{
if(y == 0)
return x;
else
return Add(x ^ y,(x&y)<< 1);
}}