Codelearn

分享Python,C/C++相关的技术文章, 海洋饼干叔叔@重庆大学

  考虑如下问题,我们试图定义一个名为Student的结构,这个结构应包括学生的姓名,学生已修课程的数量以及已修课程各科的分数。实践中,每个学生已修课程的数目是不一样的,这使得我们在定义用于存储分数的结构成员时面临两难的局面:

  • 如果将该数组定义得比较小,会存在某学生所修课程数量较多,存不下的情况。

  • 如果将该数组定义得很大,比如10000,则对于大多数学生而言,内存空间浪费严重。而且,无论将该数组定义得再大,理论上都存在实际数据超量,存不下的可能。

ASCII码,即美国信息交换标准交换代码表(American Standard Code for Information Interchange)。

该编码方案使用单个字节来表示一个符号,由于1个字节包含8个比特,仅能表示256种不同的组合,因此,ASCII码仅能表示英文字母、标点符号、数字及简单的控制信息。如果需要表示汉字、韩文等其他语言符号,则需要使用UTF-8等多字节编码方案。通常而言,UTF-8等多字节编码方案对ASCII编码做了兼容,在0 ~ 127的范围内,UTF-8的单字节编码与ASCII码等同。

下述表格列出了ASCII码字符与码值之间的对应关系。

在C++里,我们使用cout进行控制台文本输出。这在学习编程的阶段很常用,但在真实的工作场合却极少使用,毕竟大部分的应用程序都是基于图形界面,而不是终端的。甚至,在C/C++的某些应用场合,比如单片机编程里,嵌入式设备甚至连屏幕都没有。

考虑到部分OJ系统中的在线编程题可能对输出格式作出精细要求,这里我们对cout控制输出进行“详细”讨论:包括cout的基本工作原理,以及通过cout进行精细格式输出的方法。