精华内容
下载资源
问答
  • CSV,即Comma-Separated Values,意思逗号分隔值,或字符分隔值。.csv文件是一种将表数据借助字符分隔的方式存储成文本的文件格式。譬如,可以在excel中另存为csv文件。我们先来试一个,创建一个excel文件,内容...

    (1)什么是csv文件?

    CSV,即Comma-Separated Values,意思是逗号分隔值,或字符分隔值。.csv文件是一种将表数据借助字符分隔的方式存储成文本的文件格式。譬如,可以在excel中另存为csv文件。我们先来试一个,创建一个excel文件,内容如下:

    A B C
    0 name0 des0
    1 name1 des1
    2 name2 des2

    另存,选择格式为csv,会弹窗要求输入分隔符,输入“|”,得到文本文件,用文本浏览器查看内容如下:
    0|name0|des0
    1|name1|des1
    2|name2|des2

    (2)如何将SQLite数据库表导出到csv文件?

    先用show命令看一下当前SQLite用户shell中的设置,其中包含分隔符:

    sqlite> .show
            echo: off
             eqp: off
      explain: off
         headers: off
            mode: list
       nullvalue: ""
          output: stdout
    colseparator: "|"
    rowseparator: "\n"
           stats: off
           width: 
    

    看到分隔符为“|”。可以使用separator命令来指定分隔符:

    sqlite> .separator ,
    sqlite> .separator |
    sqlite> 
    

    导出到csv的原理很简单,将SQLite输出重定向到.csv文件,然后执行select。同样,使用ouput命令,无需手动创建输出的文件,直接输入文件名作为output命令参数即可:

    sqlite> select * from test_table;
    0|name0|des0
    1|name1|des1
    2|name2|des2
    sqlite> 
    sqlite> .output test_csv.csv
    sqlite> select * from test_table;
    sqlite> .output stdout

    好,查看test_csv.csv文件内容:
    0|name0|des0
    1|name1|des1
    2|name2|des2
    因为这种方式其实只是重定向了输出,执行的是SQL,所以可以满足各种数据组合、筛选等需求。

    (3)如何将csv文件导入到SQLite数据库?

    使用import命令(.import [file][table]):

    sqlite> delete from test_table;
    sqlite> 
    sqlite> select * from test_table;
    sqlite> 
    sqlite> .import test_csv.csv test_table
    sqlite> 
    sqlite> select * from test_table;
    0|name0|des0
    1|name1|des1
    2|name2|des2
    sqlite> 
    

    如果数据库中没有这个表,import命令会直接创建表吗?yes。

    sqlite> .import test_csv.csv test_table2
    sqlite> 
    sqlite> select * from test_table2;
    1|name1|des1
    2|name2|des2
    sqlite> 
    sqlite> .schema test_table2
    CREATE TABLE test_table2(
      "0" TEXT,
      "name0" TEXT,
      "des0" TEXT
    );

    看到使用import将csv文件导入到一个不存在的表时,会自动创建这个表,但是会把第一行解析成表信息,并且每个字段都会定义成TEXT。
    另外,注意,csv文件的字段分隔符需要与SQLite用户shell中的设置一致。将test_csv.csv文件分隔符改一下测试一下:
    0,name0,des0
    1,name1,des1
    2,name2,des2

    sqlite> delete from test_table;
    sqlite> 
    sqlite> select * from test_table;
    sqlite> 
    sqlite> .import test_csv.csv test_table
    test_csv.csv:1: expected 3 columns but found 1 - filling the rest with NULL
    test_csv.csv:1: INSERT failed: datatype mismatch
    test_csv.csv:2: expected 3 columns but found 1 - filling the rest with NULL
    test_csv.csv:2: INSERT failed: datatype mismatch
    test_csv.csv:3: expected 3 columns but found 1 - filling the rest with NULL
    test_csv.csv:3: INSERT failed: datatype mismatch
    sqlite> 
    sqlite> select * from test_table;
    sqlite> 
    展开全文
  • 今天,我们将学习csv文件的基本操作。 什么是csv文件? CSVComma-Separated Value的缩写,意思是逗号分隔值,其文件以文本形式存储表格数据。 1.创建示例csv文件

    今天,我们将学习csv文件的基本操作。
    什么是csv文件?
    CSV是Comma-Separated Value的缩写,意思是逗号分隔值,其文件以文本形式存储表格数据。

    1.创建示例csv文件

    首先,在目录下创建一个名为test.csv的文件,用记事本打开,输入:

    A,B,C,D
    1,2,3,4
    5,6,7,8
    

    这里说明一下,第一行充当CSV文件的标题,第二,三行充当每个列表项,如果用Excel表格打开,会看到:
    Excel表格

    2.运用csv模块进行操作

    在相同目录下,再新建一个Python文件,输入代码:

    import csv
    
    with open("test.csv") as f:
    	reader = csv.reader(f)
    

    在代码中,我们用with-open语句打开了test.csv文件,并用了csv模块中的reader函数,传入文件对象。根据文件,这个函数会创建一个解析对象,我们将这个对象赋予给reader变量。

    2.1 读取csv数据

    import csv
    
    with open("test.csv") as f:
    	reader = csv.reader(f)
    	for r in reader:
    		print(r)
    

    这个解析对象可以用for循环来遍历它,打印出的则是每行的数据,这些数据被转换为了Python列表格式,输出:


    [‘A’, ‘B’, ‘C’, ‘D’]
    [‘1’, ‘2’, ‘3’, ‘4’]
    [‘5’, ‘6’, ‘7’, ‘8’]


    你可以利用其它的数据做下一步分析。

    2.2 写入csv数据

    2.2.1 单行存储

    import csv
    
    with open("test2.csv", "w", newline="") as f:
    	writer = csv.writer(f)
    	test_list = ['1', '2', '3']
    	writer.writerow(test_list)
    

    (这里说明一下,打开文件的open函数中的参数newline,是用来控制文本模式之下,一行的结束字符。可以是None,"",\n,\r,\r\n等,如果还有不理解的地方,可以自行查询相关资料)
    上述代码中,我们使用了w写入模式,创建了一个writer写入对象,然后我们定义了一个列表,并调用writerow函数,将列表存储到csv文件里。

    2.2.2 多行存储

    如果你想存储多行数据,要把列表修改亿下,如:

    test_list = [
    			['1', '2', '3'],
    			['4', '5', '6'],
    			]
    for l in test_list:
    	writer.writerow(l)
    

    我们使用for循环,将每个test_list列表项作为一个csv文件的行,一个一个存储。


    好了,今天的课程就到这,喜欢的可以点赞收藏一下,拜拜!

    展开全文
  • csv 直译逗号分隔值”,后者直接作为中文模块名称的话太长,不合适。经考虑,老吴根据其主要特征,将对应的中文模块名确定为“逗号表”。 该模块与 csv 文件处理有关的主要对象有两个函数(写入官、读取官)和两...

    草蟒“逗号表”模块介绍及中文命名随想

    草蟒是 Python 汉化版中文编程语言。近日,草蟒开发者老吴完成了“逗号表”模块的创建,下面对其加以介绍。

    “逗号表”汉化自 csv 模块。csv 直译是“逗号分隔值”,后者直接作为中文模块名称的话太长,不合适。经考虑,老吴根据其主要特征,将对应的中文模块名确定为“逗号表”。

    该模块与 csv 文件处理有关的主要对象有两个函数(写入官读取官)和两个类(字典写入官字典读取官)。各位看官可能要问:xx官 是什么意思?xx官 对应的英文是 xxer,以前一般译为 xx器,但老吴在汉化过程中感觉这样命名在某些时候不利于编程命名。假设 Python 中有一个 class Translator,如果根据一般的习惯译法,草蟒中对应的类应当叫做“翻译器类”:

    类 翻译器类: …
    翻译器 = 翻译器类() # 实例化

    是不是有点尬?采用新译法:

    类 翻译官: …
    翻译员 = 翻译官()

    新译法的好处是:1. 类名可以减少后缀“类”字;2. 官 与 员 对应,一看便知 xx官 是一个类,而 xx员 是其实例;3. 官-员 的对应很好地模拟了英文中“首字母大写单词表示一个类,相应的小写单词表示其实例”的规则。当然,新译法仅适用于部分动作性类名;对于更多的名词性类名,老吴尚未想到更自然的处理办法。

    言归正传。假设我有一些数据,现在要用 csv 文件保存起来,那么可以这样做:

    导入 逗号表
    
    表头 = ['姓名', '班级', '语文', '数学', '英语', '名次']
    
    学生成绩 = [
        ['张三', 10, 82, 100, 95, 1],
        ['李四', 5, 66, 97, 80, 3],
        ['王五', 8, 93, 88, 90, 2],
    ]
    
    管 打开('学生成绩表.csv','w', 编码='utf8', 换行符='') 为 文:  # 换行符='' 的作用是消除空白行
        写入员 = 逗号表.写入官()
        写入员.写一行(表头)
        写入员.写多行(学生成绩)
    

    结果是生成了一个名为 学生成绩表.csv 的文件,其内容如下:

    姓名,班级,语文,数学,英语,名次
    张三,10,82,100,95,1
    李四,5,66,97,80,3
    王五,8,93,88,90,2

    现在我要读取这些同学的成绩进行处理:

    导入 逗号表
    
    管 打开('学生成绩表.csv', 编码='utf8') 为 文:
        读取员 = 逗号表.读取官()
        取 行 于 读取员:
            如果 读取员.行数 == 1:  # 读取官 的 行数 属性表示已经读取了几行
                无操作             # 第一行是标题行, 忽略
            否则:
                打印(f'{行[1]} 班{行[0]} 月考成绩: 语文 {行[2]}, '
                        f'数学 {行[3]}, 英语 {行[4]}, 排名第 {行[5]}')
    

    输出结果如下:

    10 班张三 月考成绩: 语文 82, 数学 100, 英语 95, 排名第 1
    5 班李四 月考成绩: 语文 66, 数学 97, 英语 80, 排名第 3
    8 班王五 月考成绩: 语文 93, 数学 88, 英语 90, 排名第 2

    现在我要以每行一个字典的方式读出学生信息:

    导入 逗号表
    
    管 打开('学生成绩表.csv', 编码='utf8') 为 文:
        读取员 = 逗号表.字典读取官()
        取 行 于 读取员:
            如果 读取员.行数 == 2:  # 读取第一行数据时, 之前已经处理了表头, 所以行数是 2
                打印(读取员.字段名称)  # 列出所有字段名称
            打印()        # 现在每行以字典形式呈现, 所以下面要以 行[键] 的形式取值
            打印(f"{行['班级']} 班{行['姓名']} 月考成绩: 语文 {行['语文']}, "
                        f"数学 {行['数学']}, 英语 {行['英语']}, 排名第 {行['名次']}")
    

    结果如下:

    [‘姓名’, ‘班级’, ‘语文’, ‘数学’, ‘英语’, ‘名次’]
    {‘姓名’: ‘张三’, ‘班级’: ‘10’, ‘语文’: ‘82’, ‘数学’: ‘100’, ‘英语’: ‘95’, ‘名次’: ‘1’}
    10 班张三 月考成绩: 语文 82, 数学 100, 英语 95, 排名第 1
    {‘姓名’: ‘李四’, ‘班级’: ‘5’, ‘语文’: ‘66’, ‘数学’: ‘97’, ‘英语’: ‘80’, ‘名次’: ‘3’}
    5 班李四 月考成绩: 语文 66, 数学 97, 英语 80, 排名第 3
    {‘姓名’: ‘王五’, ‘班级’: ‘8’, ‘语文’: ‘93’, ‘数学’: ‘88’, ‘英语’: ‘90’, ‘名次’: ‘2’}
    8 班王五 月考成绩: 语文 93, 数学 88, 英语 90, 排名第 2

    现在将字典形式的行信息写入一个新的文件 学生成绩表字典.csv

    导入 逗号表
    
    表头 = ['姓名', '班级', '语文', '数学', '英语', '名次']
    
    学生成绩 = [
        {'姓名': '张三', '班级': '10', '语文': '82', 
            '数学': '100', '英语': '95', '名次': '1'},
        {'姓名': '李四', '班级': '5', '语文': '66', 
            '数学': '97', '英语': '80', '名次': '3'},
        {'姓名': '王五', '班级': '8', '语文': '93', 
            '数学': '88', '英语': '90', '名次': '2'}
    ]
    
    管 打开('学生成绩表字典.csv','w', 编码='utf8', 换行符='') 为 文:
        写入员 = 逗号表.字典写入官(, 表头)  # 必须提供 字段名称 参数值, 在本例中即 表头
        写入员.写表头()
        写入员.写多行(学生成绩)
    

    写入文件的结果与 学生成绩表.csv 相同。

    “逗号表”模块还有一个重要的属性容器类——方言类,其属性包括:定界符引号字符转义符双引号跳过初始空白行结束符加引号。你可以继承此类或其已有子类(比如 excel),创建自己的方言,从而实现 csv 格式的自定义。例如:

    导入 逗号表
    
    类 我的方言(逗号表.方言类):
        定界符 = '|'
        引号字符 = '='
        行结束符 = '\r'
        加引号 = 逗号表.非数字加引号啊  # xx啊 是什么鬼? 
    
    逗号表.注册方言('川普', 我的方言)
    
    表头 = ['姓名', '班级', '语文', '数学', '英语', '名次']
    
    学生成绩 = [
        ['张三', 10, 82, 100, 95, 1],
        ['李四', 5, 66, 97, 80, 3],
        ['王五', 8, 93, 88, 90, 2],
    ]
    
    管 打开('学生成绩表方言版.csv','w', 编码='utf8', 换行符='') 为 文:
        写入员 = 逗号表.写入官(, 方言='川普')
        写入员.写一行(表头)
        写入员.写多行(学生成绩)
    

    学生成绩表方言版.csv 的内容如下:

    =姓名=|=班级=|=语文=|=数学=|=英语=|=名次=
    =张三=|10|82|100|95|1
    =李四=|5|66|97|80|3
    =王五=|8|93|88|90|2

    读取的时候也要使用相同的方言,否则鸡同鸭讲,不知所云。

    管 打开('学生成绩表方言版.csv','r', 编码='utf8') 为 文:
        读取员 = 逗号表.读取官(, 方言='川普')
        取 行 于 读取员:
            打印()
    

    结果如下:

    [‘姓名’, ‘班级’, ‘语文’, ‘数学’, ‘英语’, ‘名次’]
    [‘张三’, 10.0, 82.0, 100.0, 95.0, 1.0]
    [‘李四’, 5.0, 66.0, 97.0, 80.0, 3.0]
    [‘王五’, 8.0, 93.0, 88.0, 90.0, 2.0]

    在上面的代码中,方言类的“加引号”属性有四个值可以选取:最少引号啊全部加引号啊非数字加引号啊不加引号啊。各位看官可能好奇,编程又不是作诗,啊什么啊?在草蟒中,以“啊”结尾的名称表示一个常量,对应 python 中的全大写常量,比如:非数字加引号啊 = QUOTE_NONNUMERIC。这个啊字,在汉语中是表示强调的虚词,加啊的特殊名称与不加啊的一般名称相区分,很好地模拟了英文全大写常量与一般变量的区别,可谓异曲同工。另外,这些“啊”字是不是也让代码变得更有温度?

    另外,英文编程中一个单词的多种缩写形式让编程命名显得非常灵活,中文编程在这方面似乎不行。真的不行吗?老吴认为非也,不过我们要反其道而行,增字而不是缩字。

    l = ['grasspy', 'python', 'good', 'yes']
    lst = ['oh', 'ye']
    li = ['ok', 'bye']
    
    # 中文编程
    列表哦 = ['草蟒', '中文编程', '语言']
    列表哈 = ['草蟒', '易语言']
    列表啦 = ['你好', '再见']
    

    以上就是老吴的提议:通过增加 等极易敲出的虚词来极大增强中文命名的灵活性。

    由此可以看出,只要开动脑筋,英文编程的优点完全可以在中文中创造出来。

    注意:“逗号表”模块尚未并入草蟒官网发行版中,预计将在春节前并入,敬请关注!

    展开全文
  • 2019.7.31 python相关

    2019-07-31 17:44:34
    逗号分隔值文件格式 意思是 用某个符号将各个字段分离开来 基本单位是各个字段 4.读写文件 python的格式是什么? with open('XX ' , 'XX ( rb ) ') as XX ( f / fp ) 5.csv.reader用法? reader = csv.rea...

    1.python里面的lambda用法

    2.python里面的map函数

    3.CSV文件是什么? 逗号分隔值文件格式

    意思是 用某个符号将各个字段分离开来  基本单位是各个字段

    4.读写文件 python的格式是什么?

    with open(' XX ' , 'XX ( rb ) ') as XX ( f / fp )

    5.csv.reader用法?

    reader = csv.reader(f) 此时reader返回的值是csv文件中每行的列表,将每行读取的值作为列表返回

    https://blog.csdn.net/swc5285018/article/details/78967958

    默认情况下,python不会跳过空格,因此需要使用skipinitalspace=true。

    http://www.it1352.com/584280.html

    6.

    chain()

    chain()可以把一组迭代对象串联起来,形成一个更大的迭代器:

    for c in itertools.chain('ABC', 'XYZ'):
        print c
    # 迭代效果:'A' 'B' 'C' 'X' 'Y' 'Z'

    itertools.chain()

    from itertools import chain 
    a = [1, 2, 3, 4] 
    b = [‘x’, ‘y’, ‘z’] 
    for x in chain(a, b): 
    … print(x) 






    z

    7.nltk.sent_tokenize(text) #按句子分割 
    nltk.word_tokenize(sentence) #分词

    https://blog.csdn.net/sherrylml/article/details/45196505

    8.sentences = itertools.chain(*[nltk.sent_tokenize(x[0].decode('utf-8').lower()) for x in reader])

    decode 以“utf-8”进行编码,lower换成小写的形式

    https://blog.csdn.net/moodytong/article/details/8136258

    9.nltk.FreqDist

    FreqDist继承自dict,所以我们可以像操作字典一样操作FreqDist对象。 
    在本例中,FreqDist中的键为单词,值为单词的出现总次数。 
    实际上FreqDist构造函数接受任意一个列表,它会将列表中的重复项给统计起来, 
    在本例中我们传入的其实就是一个文本的单词列表。我们可以看看每个单词对应的出现次数: 
    命令行输入

    https://blog.csdn.net/csdn_lzw/article/details/80390768

    10.nltk的安装 直接pip install即可

    11.

    'data.csv','r', encoding='utf-8'

    UTF-8是一种针对Unicode的可变长度字符编码

    12.

    str.lower()
    展开全文
  • 导出没有乱码的csv

    千次阅读 2013-02-23 10:35:02
    从前有个小孩叫iconv iconv(“UTF-8″,”GB2312//IGNORE”,$data) ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符...Comma Separator Value(逗号分隔值)也。常常用来数据转换的中间文
  • Learning-JSON-源码

    2021-03-04 19:40:24
    JSON是什么意思? JSON表示JavaScript对象表示法 JSON是用于存储和传输数据的轻量级格式 数据从服务器发送到网页时,通常使用JSON 语法规则 数据在名称/对中 数据用逗号分隔 花括号支撑物体 方括号可容纳数组 ...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    3.20 “semanticsof‘’changeinANSIC”的警告是什么意思? 3.21 “无符号保护”和“保护”规则的区别在哪里? 第4章 指针 基本的指针应用 4.1 指针到底有什么好处? 4.2 我想声明一个指针并为它分配...
  • 3.20 “semantics of‘’change in ANSI C”的警告是什么意思? 42 3.21 “无符号保护”和“保护”规则的区别在哪里? 42 第4章 指针 45 基本的指针应用 45 4.1 指针到底有什么好处? 45 4.2 我想声明...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    3.20 “semantics of‘’change in ANSI C”的警告是什么意思? 42 3.21 “无符号保护”和“保护”规则的区别在哪里? 42 第4章 指针 45 基本的指针应用 45 4.1 指针到底有什么好处? 45 4.2 我想声明...
  • o 2.4 extern 在函数声明中是什么意思? o 2.5 关键字 auto 到底有什么用途? o 2.6 我似乎不能成功定义一个链表。我试过 typedef struct { char *item; NODEPTR next; } *NODEPTR; 但是编译器报了错误信息。难道...
  • 最新Java面试宝典pdf版

    热门讨论 2011-08-31 11:29:22
    18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、...
  • Java面试宝典-经典

    2015-03-28 21:44:36
    18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、...
  • Java面试宝典2010版

    2011-06-27 09:48:27
    18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入为 "Hello" 的 XML 配置文件该怎么写? 19、Jdo是什么? 20、什么是spring的IOC AOP 21、STRUTS的工作流程! 22、spring 与EJB...
  • 对于select多选类型表单,默认数据库保存为半角逗号分隔的多个选择。当你设置字段类型为无符号整型时,数据库会保存多个选择的求和(当然前提选择整型数据)。 搜索字段($searchField)配置说明 ...
  • Java面试宝典2012版

    2012-12-03 21:57:42
    18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 ...
  • java面试宝典2012

    2012-12-16 20:43:41
    18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入为 "Hello" 的 XML 配置文件该怎么写? 137 19、Jdo是什么? 137 20、什么是spring的IOC AOP 137 21、STRUTS的工作流程! 137 22、...
  • 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、...
  • Java面试笔试资料大全

    热门讨论 2011-07-22 14:33:56
    18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、...
  • Java面试宝典2012新版

    2012-06-26 19:20:00
    18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、...
  • JAVA面试宝典2010

    2011-12-20 16:13:24
    18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、...
  • java面试宝典

    2013-02-28 16:04:01
    47、在java 中一个类被声明为final 类型,表示了什么意思? 12 48、下面哪些类可以被继承? 12 49、指出下面程序的运行结果: 【基础】 13 52、关于内部类: 13 53、数据类型之间的转换: 14 54、字符串操作:如何实现...
  • 千方百计笔试题大全

    2011-11-30 21:58:33
    47、在java 中一个类被声明为final 类型,表示了什么意思? 12 48、下面哪些类可以被继承? 12 49、指出下面程序的运行结果: 【基础】 13 52、关于内部类: 13 53、数据类型之间的转换: 14 54、字符串操作:如何实现...
  • 18、Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、...
  • 你必须知道的495个C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    1.4 extern 在函数声明中是什么意思? . . . . . . . . . . . . . . . . . 2 1.5 关键字auto 到底有什么用途? . . . . . . . . . . . . . . . . . . . 2 1.6 我似乎不能成功定义一个链表。我试过typedef struct f ...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

逗号分隔值文件是什么意思