一剑飘零 发表于 2023-8-1 16:02

有没有什么方法把print("");这个双引号去掉?

可烦输入""这个了。我想要的就是比如输入print(abc); 直接就输出了。

比如里面的字符串我不需要输入引号了。

以C为例,写个函数。
pr(ab){    //这里应该填啥类型呢?int float都不合适。形参如何写呢?

printf("%s",ab);    //这里的占位符是%s,%d用什么格式输出呢?我只是想直接就打印出来不管他是字符也好,int型也好,float型也好。有没有这种方法?
}

Broadm 发表于 2023-8-1 16:53

本帖最后由 Broadm 于 2023-8-1 16:57 编辑

#define log(message) printf("%s", (#message))

int main()
{
      log(你好啊);
}

使用宏啊,如上

一剑飘零 发表于 2023-8-1 16:58

Broadm 发表于 2023-8-1 16:53
#define log(message) printf("%s", (#message))

int main()


我去,大佬,膜拜。果然可以。

wyl0205 发表于 2023-8-1 16:11

估计是输入法的锅,有的输入法会有自动补全功能,但是有的IDE或者编写工具也有自动补全的功能,自己摸索下吧

灿烂的小居 发表于 2023-8-1 16:13

重写打印函数or类似函数

核心:自动判断传参的类型
C++语言貌似可以利用函数重载来实现,C的话不记得怎么搞的了

三滑稽甲苯 发表于 2023-8-1 16:21

类 C 语言标准库里应该没有类似函数,可以上 GitHub 找找看
Python 的话不管什么都直接 print 就行

Wheelchair 发表于 2023-8-1 16:27

我印象中C语言很难实现这个功能,因为它太老了,需要明确指出输入的数据类型。
在C++里好一点,有函数重载机制,把需要输入的参数类型都写一个函数就可以了。而且已经有标准库,可以直接使用cout输出int、float、string等数据类型

liuganglove2018 发表于 2023-8-1 16:34

强类型函数语言,制定了规则的同时,节省内存,这是没办法的事情。非要这样,就只能自定义原始函数库,不过有那工夫,还是老老实实敲引号得了吧。

hs248613 发表于 2023-8-1 16:45

自己写个类

wuwudi 发表于 2023-8-1 16:45

不可以哦,这个是语言规则

lq2007 发表于 2023-8-1 16:48

我觉得问题关键不在于函数重载,而是说如何给字符串脱去括号,是不是使用 `print` 不是问题关键

换句话说,就是如何实现将字符串字面量脱去括号仍会被识别为一个字符串的问题

目前想到的要解决的问题有二:
1. 若不加引号,可能会解析成对作用域中成员的访问。如何在成员不存在的情况下返回一个字符串,可能代{过}{滤}理可以解决这个问题,Groovy 等语言实现起来倒能方便点,但 c。。。没研究过
2. 字符串允许包含的内容很多,但普遍各种编程语言的标识符格式是有限制的。如何不引起语法错误和歧义?

感觉要实现这个功能需要重写一门语言了

一剑飘零 发表于 2023-8-1 16:50

lq2007 发表于 2023-8-1 16:48
我觉得问题关键不在于函数重载,而是说如何给字符串脱去括号,是不是使用 `print` 不是问题关键

换 ...

:'(weeqw,我现在用的是rust.用C做的例子。因为都一样。所以C比较顺手就用C举的例子。
页: [1] 2 3
查看完整版本: 有没有什么方法把print("");这个双引号去掉?