c的IO
部分内容来自http://www.programfan.com/article/2674.html以及http://www.programfan.com/article/showarticle.asp?id=2675
部分翻译来自TUM skript(c programmieren);
1.printf():
千万不要遗忘在printf()的最后添加NewLine"\n"。因为在c的库中通常有行缓存机制,这个意味着只有当一行的输入通过"\n"结束之前,行的数据将会被缓存,之后才会显示出来。
格式:
% <输出最小宽度>.<小数位> 类型
‘-’号为左对齐
2.scanf():
行输入的结束是根据Enter(Carriage Return)来确定的;
注意scanf要传引用,而对于数组而言传数组名/指针名即可,本身就是引用;
int iA[10]={...};
scanf("%10d", iA);
对于scanf而言也存在缓存机制,所有合适当前输出流格式的字符将从缓存中取出知道出现不合适的字符位置,下一次scanf将继续读未读完的缓存字符,只有当这次的scanf缓存中的数据完全结束后,才能再启动新的scanf缓存。
ex.1
int a=2,b=2;
scanf("%d",&a);
scanf("%d",&b);
//如果输入
//11.75
//5
则最后出现的是a的值为11,而b的值因为"."并不是%d类型的所以scanf不能继续读缓存中的值,所以b的值将不被改变
最后的输出时 a=11,b=2;
ex.2
scanf("%c%c%c",&a,&b,&c);
//输入为:
//d e f
//则把'd'赋予a, ' '赋予b,'e'赋予c。只有当输入为:
//def时才是正确的
scanf的双引号内部可以设置格式符号例如空格以及tab等,但同时输入也要按照这个格式,否则要出现错误。
3.getchar()
完整的函数式为:int getchar(void);
读入的为一个个字符,返回值为字符ascii码。
getchar函数getchar函数的功能是从键盘上输入一个字符。其一般形式为: getchar(); 通常把输入的字符赋予一个字符变量,构成赋值语句,如:
char c;
c=getchar();#include<stdio.h>
void main(){
char c;
printf("input a character\n");
c=getchar();
putchar(c);
}
使用getchar函数还应注意几个问题:
1.getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。
2.使用本函数前必须包含文件“stdio.h”。
4.putchar()
完整的函数式为:int putchar(int c);
一个个字符的输出;
#include<stdio.h>
#include <stdio.h>
void main(){
char a
相关文档:
表达式的副作用
运算符的优先级与结合性规定了表达式中相邻两个运算符的运算次序,但对于双目
运算的操作数,C++没有规定他们的计算次序。例如,对于表达式:
exp1 + exp2;
先计算 exp1 还是 exp2?不同的编译器有不同的做法。
在数学上,对于双目运算符,不论先计算哪一个操作数,要求最终计算结果一样。
在 C++ ......
发信人: RoachCock (反动学术权威), 信区: CPlusPlus
标 题: extern "C" 阅读笔记
发信站: 水木社区 (Fri Mar 7 00:22:47 2008), 站内
本以为很简单,仔细阅读了一下 C++ 标准,发现内容还不少。总结了一下。
要点:
函数类型,函数名,变量名具有语言链接性,language linkage。
语言链接性可能会影响到 ......
内核启动的现在已经是开始执行函数start_kernel函数了。start_kernel函数在init/main.c中定义。start_kernel函数只是完成
相应的结构的初始化任务。
printk(KERN_NOTICE);
printk(linux_banner);
setup_arch(&command_line);
在uboot的一直过程中,uboo ......
//库函数实现
char *strcat (char *dst, const char *src)
{
char *p = dst;
while (*p)
p++;
while ((*p++ = *src++))
;
return dst;
}
char *strncat (char *s1, const char *s2, long unsigned int n)
{
char *dest = s1;
  ......
1.
printf("%.9lf\n",sum);
//输出小数点后9位不省去末尾多余的0
2.
printf("%.10g\n",sum);
//输出小数点后9位不省去末尾多余的0
3.
#include<iomanip>
cout<<setprecision(10)<<sum<<endl;
//输出小数点后9位省去末尾多余的0
4.
#include<iomanip>
cout.pre ......