ISO/IEC 7185:1990标准Pascal中read读字符串的规范缺失疑问
关于ISO/IEC 7185:1990(E) Standard Pascal中read过程字符串参数的疑问解答
- 这不是规范漏洞,是对Pascal字符串类型定义和read过程隐含逻辑的理解偏差。
- 在ISO/IEC 7185的语境中,string-type特指固定长度短字符串,而非后续扩展的动态字符串。对于这类字符串,read过程的处理逻辑是基于字符读取规则的扩展:
- 从输入流逐个读取字符,直到填满字符串的固定长度,或遇到文件结束、换行符为止
- 读取的字符依次存入字符串的每个位置,未填满的剩余位置会用空格填充
- 规范未单独列出字符串的读取逻辑,是因为定长字符串的读取可拆解为多次
char类型的读取操作——相当于对字符串的每个元素执行一次read(f, char_var),属于已有char读取规则的复用,无需额外重复说明。 - 而write过程单独明确字符串输出逻辑,是因为字符串输出需要一次性处理整个字符序列,无法直接复用单个字符的输出规则,因此需要单独条款定义。
内容的提问来源于stack exchange,提问作者James Georgas
相关产品推荐
相关产品推荐

