您的位置:首页 > 编程语言 > C语言/C++

C++ 琐碎

2013-10-22 21:15 134 查看
注意用fstream创建文件时,不能指定ios::in 参数,否则当文件不存在时不会自动创建
 
char *fileName = "C://input.txt" ; 

fstream fs(fileName, ios::in | ios::out, ios::trunc);  

当fileName对应的文件不存在时,不会自动创建

但是如果写成
 
char *fileName = "C://input.txt" ; 

fstream fs(fileName, ios::out, ios::trunc) ;  

如果文件不存在那么就会自动创建一个

 
定位到了文件之后重新定位到屏幕输出
freopen("CON", "r", stdin); 
freopen("CON", "r", stdout);   //CON  是控制台的另外一个设备文件名

cout带缓冲输出,printf不带缓冲输出??

输入字符串时,cin.get不会忽略有效字符前的字符,同时在输入结束时会将\n留在输入流中
类似于scanf?

scanf之后再genline(cin,
str)的话, str也是空字符串。


能将整数转换为字符串而且与ANSI标准兼容的方法是使用sprintf()函数

int num = 100;
char str[25];
sprintf(str, "%d", num);

1.注意 如果格式字符串中存在空格 scanf则表示可以跳过一切空白字符 包括空格 换行符 制表符等

2.在C语言中,接受输入单个字符的函数如scanf、getchar()等都有一个毛病,就是程序接受完用户输入的字符后并没有清空键盘输入缓冲区(或者说标准输入流),,因此当用户输完字符和回车后,回车字符还留在标准输入流中,而gets函数又恰好从缓冲区的当前字符开始接收输入,这样,它接收的到第一个字符就是上次输入遗留下来的回车符号,于是程序又会把它作为结束输入的标志,不再接受用户的键盘输入。     而C++的输入流就改正了这个毛病,接受完后自动清空输入流。 

语句fflush(stdin);的作用就是清空当前的标准输入流(即键盘缓冲区。)

3.getline(ss, str, ' '); getline分隔字符串

4.如果在不知道内存具体需求的时候,使用deque绝对是比vector好的

5.c++清空输入缓冲区 cin.clear() cin.sync()

6.一个无向图存在欧拉回路,当且仅当该图所有顶点度数都是偶数

7.程序员只能为类类型或枚举类型的操作数定义重载操作符

8.不能简单的把指针理解为地址,而应该是指向一块内存区域的起始地址。指向区域的大小视指针变量的类型而定。

[align=left]extern void func()[/align]
[align=left]{[/align]
[align=left]    printf("111\n");[/align]
[align=left]    int a[11];[/align]
    printf("a=%d\n",
a);
    printf("&a=%d\n",
&a);
    printf("a+1=%d\n",
a+1);
    printf("&a+1=%d\n",
&a+1); 
[align=left]    //&a指向的是int[11]类型的指针变量,区域是int*11[/align]
[align=left]    // int a[11] 变形为 int* (&a)[11][/align]
[align=left]}[/align]
[align=left]结果:[/align]

[b]111
a=4455100
&a=4455100
a+1=4455104
&a+1=4455144
请按任意键继续. . .
[/b]

9.return与exit()的区别

调用exit()函数会结束当前进程,同时删除子进程所占用的内存空间,把返回信息传给父进程。
return仅表示调用堆栈的返回,其作用是返回函数值,并且推出当前执行的函数体,返回到函数的调用处。
在main()函数中执行return n和exit(n)是等价的。

10. 指针数组与数组指针

int *p[8], 指针数组,p是数组元素为指针的数组,本质为数组,p先于[]结合,说明p是一个数组,然后再与*结合说明数组p的元素是指向整型数据的指针。

int (*p)[8],p先与*组合,形成一个指针,该指针指向的是有8个整型元素数组,p即为指向数组首元素地址的指针,其本质为指针
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++