鱼C论坛

 找回密码
 立即注册
查看: 1301|回复: 3

C++,不能使用sstream,要用using namespace std

[复制链接]
发表于 2023-11-13 19:27:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编写一个将十进制整数转换为十六进制字符串的函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-13 19:27:13 | 显示全部楼层
#include <iostream>
#include <string>

using namespace std;

string decimalToHex(int decimal) {
    string hex = "";
    while (decimal > 0) {
        int remainder = decimal % 16;
        if (remainder < 10) {
            hex = char('0' + remainder) + hex;
        } else {
            hex = char('A' + remainder - 10) + hex;
        }
        decimal /= 16;
    }
    return hex;
}

int main() {
    int decimal;
    cout << "请输入一个十进制整数:";
    cin >> decimal;
    string hex = decimalToHex(decimal);
    cout << "转换为十六进制为:" << hex << endl;
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-13 19:27:30 | 显示全部楼层
#include <iostream>#include <string>using namespace std;string toHex(int num) {    string hex = "0123456789ABCDEF";    string result = "";    if (num == 0) {        result = "0";    } else {        while (num > 0) {            result = hex[num % 16] + result;            num /= 16;        }    }    return result;}int main() {    int decimalNumber;    cout << "请输入一个十进制整数:";    cin >> decimalNumber;    string hexadecimalString = toHex(decimalNumber);    cout << "对应的十六进制字符串为:" << hexadecimalString << endl;    return 0;}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-13 19:34:43 | 显示全部楼层
sh-5.2$ cat main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/wait.h>

void exec_bc(const char *str) {
    int pipe_fd[2];
    if(pipe(pipe_fd) == -1) { // 创建管道
        perror("pipe");
        exit(EXIT_FAILURE);
    }

    pid_t pid = fork();
    if(pid == -1) {
        perror("fork");
        exit(EXIT_FAILURE);
    } else if(pid == 0) {                          // 子进程
        if(dup2(pipe_fd[0], STDIN_FILENO) == -1) { // 将管道输入重定向到标准输入
            perror("dup2");
            exit(EXIT_FAILURE);
        }
        close(pipe_fd[0]);
        close(pipe_fd[1]);

        execlp("bc", "bc", NULL); // 调用bc程序
        // 如果execlp函数执行失败,输出错误信息并直接退出程序。
        perror("execlp failed");
        exit(EXIT_FAILURE);
    } else {                                 // 父进程
        write(pipe_fd[1], str, strlen(str)); // 将str写入管道
        close(pipe_fd[0]);
        close(pipe_fd[1]);
        // 不需要获取子进程的退出状态,直接使用NULL即可。
        waitpid(pid, NULL, 0);
    }
}

int main() {
    char buff[1024];
    fgets(buff, 1024, stdin);
    exec_bc(buff);
    return 0;
}
sh-5.2$ ./main
obase=16; 1234
4D2
sh-5.2$
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 04:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表