Информация об изменениях

Сообщение Re[2]: Превосходство Rust над C++ в одном примере от 15.09.2023 4:06

Изменено 15.09.2023 4:09 Shmj

Re[2]: Превосходство Rust над C++ в одном примере
Здравствуйте, Разраб, Вы писали:

Р>Не подскажите, как можно в си++ написать функцию которая считывает и возвращает строку, вызывается в майн и печатается на экране.

Р>Дело в том что я написал ее на раст, а вот на зиг который требует для этого управлением памятью, падает в рантайм с ошибкой утечки памяти.
Р>На раст это оказалось сделать несложно относительно зига, конечно.

Откройте для себя GPT

#include <iostream>
#include <string>

// Функция для считывания строки с клавиатуры
std::string readStringFromInput() {
    std::string inputString;
    std::cout << "Введите строку: ";
    std::getline(std::cin, inputString);
    return inputString;
}

int main() {
    // Вызываем функцию для считывания строки
    std::string str = readStringFromInput();

    // Выводим считанную строку на экран
    std::cout << "Вы ввели строку: " << str << std::endl;

    return 0;
}
Re[2]: Превосходство Rust над C++ в одном примере
Здравствуйте, Разраб, Вы писали:

Р>Не подскажите, как можно в си++ написать функцию которая считывает и возвращает строку, вызывается в майн и печатается на экране.

Р>Дело в том что я написал ее на раст, а вот на зиг который требует для этого управлением памятью, падает в рантайм с ошибкой утечки памяти.
Р>На раст это оказалось сделать несложно относительно зига, конечно.

Откройте для себя GPT.

C++

#include <iostream>
#include <string>

// Функция для считывания строки с клавиатуры
std::string readStringFromInput() {
    std::string inputString;
    std::cout << "Введите строку: ";
    std::getline(std::cin, inputString);
    return inputString;
}

int main() {
    // Вызываем функцию для считывания строки
    std::string str = readStringFromInput();

    // Выводим считанную строку на экран
    std::cout << "Вы ввели строку: " << str << std::endl;

    return 0;
}


Rust:

use std::io;

// Функция для считывания строки с клавиатуры
fn read_string_from_input() -> String {
    let mut input_string = String::new();
    println!("Введите строку:");
    io::stdin().read_line(&mut input_string).expect("Ошибка при считывании строки");
    input_string
}

fn main() {
    // Вызываем функцию для считывания строки
    let str = read_string_from_input();

    // Выводим считанную строку на экран
    println!("Вы ввели строку: {}", str);
}


Zig:

const std = @import("std");

pub fn readStringFromInput(allocator: *std.mem.Allocator) ![]const u8 {
    var stdin = std.io.getStdIn();
    const bufferSize: usize = 1024;
    var buffer: [bufferSize]u8 = undefined;

    var builder = std.heap.Writer.init(allocator);
    while (try stdin.read(buffer[0..]) |chunk|) |chunk| {
        try builder.append(chunk);
    }

    return builder.toOwnedSlice();
}

pub fn main() void {
    const allocator = std.heap.page_allocator;
    defer allocator.deinit();

    const inputString = try readStringFromInput(allocator);

    const output = std.io.getStdOut();
    try output.print("Вы ввели строку: {}\\n", .{inputString});
}


Zig это —