Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ A功能性C++;不使用';不要使用这些字符:''';{';,';}''\';_C++_C Preprocessor_Main - Fatal编程技术网

C++ A功能性C++;不使用';不要使用这些字符:''';{';,';}''\';

C++ A功能性C++;不使用';不要使用这些字符:''';{';,';}''\';,c++,c-preprocessor,main,C++,C Preprocessor,Main,这是去年在一次地区比赛中提出的一个问题。基本上,您需要在C++中编写一个简单的程序,可以打印格式(数字、操作符、数字)的几个字符串的结果,直到达到EOF。运算符通常为+、-、*、\ 比如说 3+5 2+2 4*3 9/3 导致 8 4 12 3 问题很明显,我不能使用这些字符;{}\ 我尝试了类似的方法(它只添加了2个整数,但这不是重点) #包括 #定义假人; #定义slashDummy“\\” #定义卷曲虚拟{ #定义curlDummy2} 使用命名空间std dummy int main

这是去年在一次地区比赛中提出的一个问题。基本上,您需要在C++中编写一个简单的程序,可以打印格式(数字、操作符、数字)的几个字符串的结果,直到达到EOF。运算符通常为+、-、*、\

比如说

3+5
2+2
4*3
9/3
导致

8 4 12 3
问题很明显,我不能使用这些字符;{}\

我尝试了类似的方法(它只添加了2个整数,但这不是重点)

#包括
#定义假人;
#定义slashDummy“\\”
#定义卷曲虚拟{
#定义curlDummy2}
使用命名空间std dummy
int main()虚拟对象
ios_base::与_stdio同步(假)虚拟
cin.tie(0)假人
int x=4虚拟
int y=5假人
int c=x+y虚拟对象

不能简单地使用有向图而不是{and}。

三向图和if语句可以实现这一点

#include <bits/stdc++.h>

int main(void)
??<
        if (std::ios_base::sync_with_stdio(false))
        if (std::cin.tie(0)) ??< ??>
        if (int x = 4) ??<
                if (int y = 5) ??<
                        if (int c = x + y) ??<
                                if (std::cout << c << std::endl) ??< ??>
                        ??>
                ??>
        ??>
??>
#包括
内部主(空)
??<
if(std::ios_base::sync_with_stdio(false))
如果(标准:cin.tie(0))??<??>
如果(整数x=4)<
如果(整数y=5)<
如果(int c=x+y)<
if(std::cout)
??>
??>
??>

使用-trigraphs标志编译。

关于
?也没有针对\@flatsassembler的有向图:“问题很明显,我不能使用字符;{}\”据我所知,你总是可以使用逗号而不是分号。你不能使用
int foo,双栏
@flatsembler:请给我们看一个有效的“Hello World”程序没有分号。不知道这些东西,谢谢,我终于解决了问题:DUAF REF.<代码>;< /C>是唯一棘手的部分。用Python编写代码,在C++中编写代码,编译并运行它。我尝试用全宽度分号作弊(<代码>;<代码>)……不去……也许类似于使用di/tri-graph subs的
int main(void){}
?这段代码编译并将“9”打印到stdin。如果我必须使用C++17,那么问题就更棘手了。
If(int C=x+y)
如果
x+y
最终变成
0
@NathanOliver,这是真的。你可以随时添加“| 1“对于if语句,@nraiha你会怎么做?如果声明变量,就不能有条件。嗯,除非你使用的是不允许三角图的C++17。@Yksisarvinen,这很棘手。从表面上看,这将非常有效,但总的来说,这不是一个解决方案。我不知道OP在挑战中实际使用的是什么数据类型,但如果他们必须处理浮点,那么如果
a
b
足够小或足够大,可能会给出错误的答案。
#include <iostream>
#define bAcc char(123)
#define rAcc char(125)
#define div char(92)
#define smcolon char(59)
#define unite2(a, b) a##b
#define unite3(a, b, c) a##b##c
#define Acc unite2(bAcc, rAcc)
#define program "while(cin.get()) if(int a = 'a') if(char b = 'b') if(int c = 'c') while(std::cin >> a && a != EOF && std::cin >> b && std::cin >> c) if(b == '+' && std::cout << a + c << std::endl) Acc else if(b == '-' && std::cout << a - c << std::endl) Acc else if(b == '*' && std::cout << a * c << std::endl) Acc else if(b == char(47) && std::cout << a char(47) c << std::endl) Acc"
#define run unite3(bAcc, program, rAcc)

int main() run
#include <bits/stdc++.h>

int main(void)
??<
        if (std::ios_base::sync_with_stdio(false))
        if (std::cin.tie(0)) ??< ??>
        if (int x = 4) ??<
                if (int y = 5) ??<
                        if (int c = x + y) ??<
                                if (std::cout << c << std::endl) ??< ??>
                        ??>
                ??>
        ??>
??>