回 帖 发 新 帖 刷新版面

主题:PRINT STRING$(30,"369")

333333333333333333333333333333

Matodied 你不要太过想当然了,很多小问题需要平时积累的。

回复列表 (共11个回复)

沙发

如果真的是他那么解释的话,那我这样编对不对呢?
s$=""
for i = 1 to 30
s$=s$+"398"
next i 
print s$

板凳

那么就是这样的:
CLS
FOR i=1 TO 30
    n$=n$+"396"
NEXT i
PRINT n$
END

3 楼

或者直接打印好了.
CLS
FOR i=1 TO 30
    PRINT "396";
NEXT i:END

4 楼

print分号会有前导空格(符号位)。

5 楼

[quote]print分号会有前导空格(符号位)。[/quote]
不会呀
moz 你也是“很多小问题需要平时积累的”,^_^

6 楼

嗯,汽水说的对,我没注意到那是字符串.

7 楼

这个语句就是:打印30个内容为398字符串,对吧?

8 楼

moz,这个STRING$函数到底是怎么做的?
因为STRING$函数有2种形式,分别是:
STRING$(m,n$)
STRING$(m,k)
第1种是生成由m个n$的首字符组成的字符串,而第2种是生成由m个CHR$(k)组成的字符串。
如STRING$(3,"A")与STRING$(3,65)作用相等。
那么在做这个函数的时候,为了同时满足2种情况,必须让其中一个参数既是字符串又是数值,这在QB中是不允许的;或者定义2个函数,而这2个不同的函数又要同名,这在QB中也是不允许的,所以这个函数没有办法做。

9 楼

那是系统用C(或汇编)写成的函数,
你是想研究它是怎么弄出来的是吗?

你试着去看看C语言的参数列表,
有可选参数,其实参数基本上都是传递一个地址,
系统再检查它的类型,从而调用不同的入出口处理的.

你说的不同类型的参数,和同名的函数,在QB里都是不允许的,
但在其他语言是允许的,(好像有些名词叫重载之类的)
你要知道,QB这个系统,并不是用QB来编的.

再: 在C语言里,并不严格区分字符与数值,
其实字符也是数值的一种形式,
所以在C里面,单个字符"A"甚至可以当成65来进行运算.

10 楼

[quote]那是系统用C(或汇编)写成的函数,
你是想研究它是怎么弄出来的是吗?

你试着去看看C语言的参数列表,
有可选参数,其实参数基本上都是传递一个地址,
系统再检查它的类型,从而调用不同的入出口处理的.

你说的不同类型的参数,和同名的函数,在QB里都是不允许的,
但在其他语言是允许的,(好像有些名词叫重载之类的)
你要知道,QB这个系统,并不是用QB来编的.

再: 在C语言里,并不严格区分字符与数值,
其实字符也是数值的一种形式,
所以在C里面,单个字符"A"甚至可以当成65来进行运算.[/quote]
YES!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册