c语言-枚举类型输出无法输出字符串

问题描述

枚举类型输出无法输出字符串

#include

typedef enum {North, East, South, West} directionT;

directionT OppositeDirection(directionT dir)
{
switch(dir) {
case North: return (South);
case East: return (West);
case South: return (North);
case West: return (East);
}
}

int main()
{
printf("%s
", OppositeDirection(North));
return 0;
}

运行后总是停止工作,然而我把printf("%s
", OppositeDirection(North));改成
printf("%d
", OppositeDirection(North));后却能显示正确的整型数值,但我想输出字符串啊,是哪里出问题了呢?

解决方案

做不到。因为枚举对应的字符串根本在编译后的程序中就没有。
只能再写switch case输出

http://blog.chinaunix.net/uid-20412333-id-1950066.html

解决方案二:

C 语言确实没有你想要的这个功能,可能 C# 或者 Java 有这样的功能,那是因为 C# 或者 Java 中的枚举其实是一个类。
在 C 语言中,只能自己编码实现:因为 C 语言中枚举只是一个简单的数字,所以可以按枚举的数值输出字符串。

解决方案三:

你可以对应的定义一个{“string”}的字符数组,enum 返回下标,给字符数组,完后输出就比较类似了,楼上都说了,c里面没这个功能

解决方案四:

enum枚举类型的输出方式

时间: 2024-12-10 11:12:48

c语言-枚举类型输出无法输出字符串的相关文章

C语言 枚举类型(Enum)详解及示例代码_C 语言

在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等. 以每周七天为例,我们可以使用#define命令来给每天指定一个名字: #include <stdio.h> #define Mon 1 #define Tues 2 #define Wed 3 #define Thurs 4 #define Fri 5 #define Sat 6 #define Sun 7 in

讲解C++中的枚举类型以及声明新类型的方法_C 语言

C++枚举类型如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型.所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内.声明枚举类型用enum开头.例如: enum weekday{sun, mon, tue, wed, thu, fri, sat}; 上面声明了一个枚举类型weekday,花括号中sun, mon, -, sat等称为枚举元素或枚举常量.表示这个类型的变量的值只能是以上7个值之一.它们是用户自己定义的标识符. 声明枚举类型

第十三章 枚举类型与位标记[《.net框架程序设计》读书笔记]

.net框架|笔记|程序|设计 第十三章 枚举类型与位标记 一. 枚举类型 1. 使用枚举类型的理由: l 枚举类型是得程序更容易编写.阅读.维护,在代码中使用符号名称代替数字是程序设计的一贯主张. l 强类型的,便于类型检验 2. 注意事项: l 枚举类型继承自System.Enum,System.Enum又继承自System.ValurType l 枚举类型不能定义方法.属性.事件 l 枚举类型为常数而非只读字段,因此可能引入版本问题(见第八章的相关讨论) l 将枚举类型与引用它的类型定义在

请问如果将Stream类型的数据转换成MemoryStream,还有如何将MemoryStream里面的数据输出到string字符串中?

问题描述 请问如果将Stream类型的数据转换成MemoryStream,还有如何将MemoryStream里面的数据输出到string字符串中?谢谢! 解决方案 解决方案二:请问如何将Stream类型的数据转换成MemoryStream,还有如何将MemoryStream里面的数据输出到string字符串中?谢谢!解决方案三:先转为byte[],再转成string解决方案四:能举个例子吗?谢谢解决方案五:已经ok了谢谢

enum-java 枚举类型怎么输出

问题描述 java 枚举类型怎么输出 public enum Weather{ Sunny,Rainy,Cloudy} public String toString(){ return ; //这里怎么写才能输出是 Sunny或Rainy或Cloudy呢? } 解决方案 http://ideone.com/6ghz84 Sunny /* package whatever; // don't place package name! */ import java.util.*; import jav

C语言变量类型与输出控制用法实例教程_C 语言

本文实例讲述了C语言变量类型与输出控制用法,有助于读者很好的对其进行总结与归纳.该实例分享给大家供大家参考借鉴之用.具体如下: 完整实例代码如下: /********************************************** **<Beginning C 4th Edition>Notes codes ** Created by Goopand ** Compiler: gcc 4.7.0 *******************************************

C语言数据的输入与输出(二)

3.2.2 printf()函数 与格式化输入函数scanf()相对应的是格式化输出函数printf(),其功能为按控制字符串规定的格式,向缺省输出设备(一般为显示器)输出在输出项列表中列出的各输出项,其基本格式为: printf("控制字符串",输出项列表) 输出项可以是常量.变量.表达式,其类型与个数必须与控制字符串中格式字符的类型.个数一致.当有多个输出项时,各项之间用逗号分隔. 控制字符串必须用双引号括起,由格式说明和普通字符两部分组成. 1.格式说明 一般格式为: %[<

C语言详解 - 枚举类型

如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型.之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来.  举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它! enum box{pencil,pen};//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示

枚举类型的定义和应用总结_C 语言

定义:如果一种变量只有几种可能的值,可以定义为枚举类型.所谓"枚举类型"是将变量的值一一列举出来,变量的值只能在列举出来的值的范围内. 声明:声明枚举类型用enum开头,例如: 复制代码 代码如下: enum weekday{sun,mon,tue,wed,thu,fri,sat}; 上面声明了一个枚举类型weekday,花括号中的sun,mon,....sat等称为枚举元素或枚举常量. 这些枚举常量,不会因为我们写了sun就自动代表着"星期天",它只是一个符号,究