【发布时间】:2012-05-31 14:19:21
【问题描述】:
这是我拥有的字符串变量:
question1 := 'Please enter 1, 2 or 3.';
我还有一个函数应该打印出 question1 变量,但它会在打印之前生成问题编号。这是该函数的片段,它将问题编号 (question : integer) 转换为字符串变量 (test : string),然后将字符串“问题”与该字符串变量 (test : string) 连接起来。
str(question,test);
test := concat('question',test);
writeln(test);
这个 writeln 的结果是 'question1'(不带引号)。我希望它将 question1 变量输出为文本字符串,而不仅仅是这个变量的名称,以便 writeln 打印 Please enter 1, 2 or 3. 我试过 writeln(question1) 并且它可以工作,但是,似乎我上面的函数(或片段它)这样做:writeln('question1')。我该如何解决?
【问题讨论】:
-
不是很清楚,抱歉。您能否展示您正在/尝试做的事情的更广泛背景?如果您执行
writeln(q1);并且它就像writeln('q1');一样工作,那么q1必须是在该范围级别可访问的字符串变量或函数,并且在执行该语句时持有'q1'.如果不是这样,但writeln(q1)仍然以这种方式工作,那么它一定是特定于你正在使用的 Pascal 的特定风格的东西。或者我错过了什么? -
我已经更新了问题。我真的不知道如何更好地解释它。基本上,我有一个函数可以生成随机变量的名称(已定义为特定的文本字符串)并将该名称放入 writeln() 中。问题在于它将变量名称作为字符串值(=作为文本)放在 writeln 中,它只打印文本'question1'。我想要的是它打印字符串变量 question1,而不是它的名称。此变量包含以下字符串,我想打印它(问题 1):'请输入 1、2 或 3。'
-
是的,现在更清楚了,谢谢。您希望解析和评估存储在
test变量中的名称。几乎不可能(肯定不是标准帕斯卡)。但是可能有其他方法可以实现您想要实现的目标。
标签: string variables printing pascal