当前位置:  编程技术>c/c++/嵌入式

C语言中基础小问题详细介绍

    来源: 互联网  发布时间:2014-10-21

    本文导语:  1、printf格式输出函数 如果格式控制说明项数多于输出表列个数,则会输出错误数据;如果输出表列个数多于格式控制说明数,则多出数不被输出。%md,m指的是输出字段的宽度。如果输出字段位数小于m,则左端以空格补齐,...

1、printf格式输出函数
如果格式控制说明项数多于输出表列个数,则会输出错误数据;
如果输出表列个数多于格式控制说明数,则多出数不被输出。
%md,m指的是输出字段的宽度。如果输出字段位数小于m,则左端以空格补齐,若大于m,则按照实际位数输出。
%-md,基本同上,只不过不同之处在于,空格在右端补齐
printf参数可以是常量,变量或表达式,VC++ 6.0中采用从右向左顺序求值,从左向右输出如
代码如下:

int x = 5;
 printf("%4d%4d%4d", x, ++x, ++x);

输出的是7,7,6. 而不是5,6,7
注意,不同的编译器可能输出不同结果,直接用gcc编译结果为7,7,7
2、0-9数字转为字符
数字为m,则m+‘0'即为m的字符形式‘m'
3、小写字母变为大写字母
char c; c为小写字母,则c-'a'+'A'即为对应的大写字母
4、switch
如果找到匹配的case入口,则执行后面的语句,执行完语句之后,并不像if语句那样退出,如果没有遇到break语句,将逐条执行后面所有的case语句,不再进行条件判断。
case入口后面的语句可以是一句,也可以是多句,并且不需要大括号。
5、字符数组存储字符串
当char str[5]=new {"china"};时,程序会出问题,输出的时候会在china后带乱码,这是因为china字符串后还有一位'',因此应该给str数组多一位。即char str[6]=new {"china"};
且''只表示字符串的结束,并不会输出。
scanf("%s",str);不能存入空格,因为认为空格代表字符串的结束。gets(str);可以在字符串中间加入空格。
puts(str);在输出字符串后自动加入换行
6、字符串操作函数
字符串拷贝函数:strcy(str1,str2); 将字符串str2拷贝到str1中。
字符串连接函数:strcat(str1,str2); 将str2连同''一起连接到str1的最后一个字符(非'')后面,结果放在str1中。
字符串比较函数:strcmp(str1,str2); 比较str1和str2的大小,如果str1==str2,则返回0;如果str1>str2,则返回正整数;如果str1>2运算后,a的值保持不变,除非通过赋值a=a>>2来改变a的值。

29、文件
(1)C语言中文件是字节流文件.
(2)C中为用户定义的文件类型是FILE,FILE文件类型是结构体类型,FILE结构是用关键字typedef定义出的一种结构。
代码如下:

struct  _iobuf
{
char * _ptr;
int _cnt;
char *base;
int _flag;
int _file;
.........
};
typedef struct  _iobuf  FILE;

(3)文件打开与关闭
文件指针 = fopen("文件路径\文件名", "文件操作方式");
操作方式分为r,w,a,r+,w+,a+
如果fopen打开失败,则返回NULL

如果缓冲区未满512B,那么不会写到磁盘中,万一程序异常终止,则缓冲区中数据丢失,导致文件不完整。只有对打开文件执行关闭操作时,才能强制把缓冲区中不足512B的数据写到磁盘文件中,保证文件的完整性。fclose函数用来关闭文件
fclose(文件指针);
返回值是一个整数值,若为0,表示正常关闭,否则表示无法正常关闭文件。
(4)文件的输入和输出
读写一个字符:char fgetc(文件指针);EOF fputc(字符,文件指针)
读写一个字符串:fgets(字符串s,读入字符个数n,文件指针)--->在中途遇到n或者EOF停止,读n-1个字符,在末尾加'';fputs(字符串,文件指针)--->字符串的结束标记不会写入文件
格式化读写:fscanf(fp, "%d%s", &i, s)--->从文件中读取数据保存到变量;fprintf(fp, "%d%c", j, c)--->按指定格式向文件写入数据
成块读写:fread(buffer,size,count,fp)和fwrite(buffer,size,count,fp)
buffer是一个指针,fread()中表示存放“输入数据”的变量首地址,fwrite()中表示存放“输出数据”的变量首地址
size表示数据块的字节数
count表示数据块个数
fp文件指针
返回值都是count值
(4)其他文件操作的函数
feof(fp)判断文件的末尾标志,到达末尾返回1,否则返回0
rewind(fp)用于定位,是文件的位置指针返回文件开头。
fseek(fp, offset, base)用来控制文件内部位置指针移动。base是位置移动的基准点。offset是偏移量
ftell(fp)用于获取位置指针的位置,相对于文件开头。

    
 
 

您可能感兴趣的文章:

  • 请问大侠学java要有c语言基础吗?
  •  只有一点JAVA语言基础,但是想先看看关于软件工程方面的东西.可能吗?
  • 有了c语言基础,如何入手学习用c语言linux网络编程
  • 请介绍一两本精典的JSP书籍,我要去买了,已有JAVA语言基础!
  • (基础)linux下c语言程序的编译问题
  • C语言基础问题,参数定义在函数名后面,是为什么?
  • 自己在家学那么3个月到半年UNIX下的网络编程,有C语言基础,出去后能找到这方面的事吗?
  • 看看您的c语言基础如何?链表问题
  • SQL语言查询基础:连接查询 联合查询 代码
  • C语言嵌入informix基础入门示例讲解
  • C 语言基础教程(我的C之旅开始了)[三]
  • C 语言基础教程(我的C之旅开始了)[五]
  • C语言基础知识点解析(extern,static,typedef,const)
  • Oracle PL/SQL语言入门基础
  • C 语言基础教程(我的C之旅开始了)[十]
  • C 语言基础教程(我的C之旅开始了)[二]
  • python基础教程之简单入门说明(变量和控制语言使用方法)
  • C 语言基础教程(我的C之旅开始了)[四]
  • Python语言的12个基础知识点小结
  • C 语言基础教程(一)颜色加亮
  • 苹果OS X和IOS下最新编程语言swift介绍
  • 谁能简单介绍一下LINUX上的各种语言脚本的功能.
  • PHP编程语言介绍及安装测试方法
  • 请各位推荐几本UNIX下C语言编程学习的书!!(电子书籍也可)最好能详细介绍文件操作的!!!万分感谢!!!
  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)
  • 我是新手,,我想学习Java语言,但对它的用途还不了解,,能给介绍一下吗?谢谢!
  • 以NetBeans IDE为例介绍如何使用XML中Schema语言
  • 详细介绍Python语言中的按位运算符
  • HTML 脚本语言介绍及<script>标签用法
  • 基于C语言char与unsigned char的区别介绍
  • 对C语言中sizeof细节的三点分析介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 2013年7月和2013年8月编程语言排行榜
  • 如何在GTK2.0下实现国际化(语言选择根据自己设置的语言,不用系统的语言)
  • 2017 年热门编程语言排行榜出炉,你的语言上榜没?
  • C语言中有指针,因此C语言可以创建链表,那么Java语言没有指针,那Java是否可以创建链表呢?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 求助,在linux下,c语言和汇编语言的接口是什么?
  • c语言实现MD5算法完整代码示例
  • C语言中间语言 CIL
  • c语言基于libpcap实现一个抓包程序过程
  • 最近学JSP,苦于HTML语言和JAVA语言太差,请教推荐几本书,thanks.
  • HTML超文本标记语言教程及实例
  • 动态编程语言 LIME编程语言
  • MD5算法的C语言实现
  • C语言如何改变当前语言环境
  • linux下进程间通信:共享内存原理及具体用法举例(基于c/c++语言)
  • 如何在VIM中使汇编语言和C语言自动缩进?
  • HTML 超文本标记语言简介
  • c/c++/嵌入式 iis7站长之家
  • HTML语言特殊字符大全及其编码对照表(包括转义方式)
  • Redhat9安装时语言只选择了中文,现在还能再增加其它语言的支持吗?如英文
  • 据说这是史上最变态的6个C语言Hello, World程序
  • 请问哪里有ubuntu 9.0版本的中文语言包和KDE的中文语言包下载,我用Google搜索了很多地方都没有!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3