不使用以下字符的功能性C ++程序:';'。 '{','}','\'

问题描述 投票:-2回答:1

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

例如

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

结果在

8 4 12 3

很明显,我不能使用这些字符; {} \

我尝试过这样的事情(它只添加2个整数,但这不是焦点)

#include<bits/stdc++.h>
#define dummy ;
#define slashDummy '\\'
#define curlDummy {
#define curlDummy2 }
using namespace std dummy


int main() curlDummy
    ios_base::sync_with_stdio(false) dummy
    cin.tie(0) dummy
    int x = 4 dummy
    int y = 5 dummy
    int c = x + y dummy
    cout << c dummy
    return 0 dummy
curlDummy2

但是通过使用#define中的字符,我无法完成任务。但是,如果我尝试将{替换为char(123),编译器将无法运行它(我最终发现了)。这意味着这种方法是完全错误的。

[我也试图#define一切,但是我很快意识到我对程序员不是很好,而且我不知道自己在做什么。

#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

主要功能不允许我继续执行此任务,我试图绕过它,但始终需要{}。

我该如何解决这个问题?谢谢您的时间。

c++ c-preprocessor main
1个回答
0
投票

仅使用二元图代替{和}。

© www.soinside.com 2019 - 2024. All rights reserved.