1.文件结束标志EOF(-1),可能比字符多几位,所以要使用int接收。
2.rt” 只读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 追加打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab” 追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
“wt+” 读写打开或建立一个文本文件,允许读写
“at+” 读写打开一个文本文件,允许读,或在文件末追加...


- [wukong] 这是钱林松老师的课件摘录的,讲的比这还详细 03/07 19:40
- [wukong] 只是方便用户,对象可以向基本类型那样,进行+-等运算。 03/07 19:38
- [chinatree] 不懂,什么书讲这么详细? 03/07 11:20
- [chinatree] 重载不是相同函数只是参数不同吗?运算符怎么重载?作用是什么? 03/07 11:13
- [tomato] c++的基本思想和java基本差不多,只是有一些细节的差别。 03/05 20:33
- [tomato] 我不是什么老师,只是一个搞技术的程序员。 03/05 20:32
- [tomato] 支持你! 03/04 23:07
- [wukong] 是的,一定努力,多动手,谢谢!!! 03/04 22:52
- [tomato] 明白了C++中的构造函数和析构函数,谢谢博主的这篇博文。嘿嘿。 03/04 22:30
- [tomato] 开始学习C++了?不仅要学习知识还要实验才行。 03/04 22:26
[2012-02-01 19:28] C语言学习文件操作(二)
阅读全文 |
评论次数(0) |
浏览次数(277) |
所属类型(C语言学习)
[2012-02-01 18:37] C语言学习文件操作(一)
一二进制和文本文件的异同点(网上搜了点资料)
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:
ASC码: 00110101 00110110 00110111 00111000
↓ ↓ ↓ ↓
十进制码: 5 6 7 8 共占用4个字节。ASCII码文件可在屏幕上按字符显示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。 由于是按字符显示,...
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:
ASC码: 00110101 00110110 00110111 00111000
↓ ↓ ↓ ↓
十进制码: 5 6 7 8 共占用4个字节。ASCII码文件可在屏幕上按字符显示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。 由于是按字符显示,...
阅读全文 |
评论次数(0) |
浏览次数(466) |
所属类型(C语言学习)
[2012-01-31 23:54] C语言字符串小结
每当学习字符串,都抓不到本质,这次学习,有些心得,供大家参考,不对的地方请多多指点。
1.字符串的结尾标志符\0.(NUL).这有利于遍历,方便字符串处理。
2.字符串的存储。char *p = "i like c";此时字符串是常量字符串,不可修改,有\0,所以可循环查询操作。char p[] = "i like c",此时是字符数组,并自动加上了\0.但不算字符数量,char p[8]="i like c";如果给出了字符数量,如果填充后有剩余,那么自动加上\0,否则不加上。
3.字符串输入函数
gets()---get string 从系统的标准输入设备(通常是键盘)获得一个字符...
1.字符串的结尾标志符\0.(NUL).这有利于遍历,方便字符串处理。
2.字符串的存储。char *p = "i like c";此时字符串是常量字符串,不可修改,有\0,所以可循环查询操作。char p[] = "i like c",此时是字符数组,并自动加上了\0.但不算字符数量,char p[8]="i like c";如果给出了字符数量,如果填充后有剩余,那么自动加上\0,否则不加上。
3.字符串输入函数
gets()---get string 从系统的标准输入设备(通常是键盘)获得一个字符...
阅读全文 |
评论次数(2) |
浏览次数(576) |
所属类型(C语言学习)
[2012-01-31 21:55] C语言字符小结
1.字符串分类:可打印字符:a-z,A-Z,0-9,-,~,!,@,#,%,^,&,*,(,),_,+,|,=,{,},[,],,,/,\,:,;,",',<,>,.?,`,空格,$,及32到126的ascii码对应的字符;控制字符:0到31,和127(删除键)。两者比例:95:33
2.控制字符:
控制字符二进制 十进制 十六进制 缩写 可以显示的表示法 名称/意义
0000 0000 0 00 NUL ␀ 空字符(Null)
0000 0001 1 01 SOH ␁ 标题开始
0000 0010 2 02 STX ␂ 本文开始
0000 0011 3 03 ETX ␃ ...
2.控制字符:
控制字符二进制 十进制 十六进制 缩写 可以显示的表示法 名称/意义
0000 0000 0 00 NUL ␀ 空字符(Null)
0000 0001 1 01 SOH ␁ 标题开始
0000 0010 2 02 STX ␂ 本文开始
0000 0011 3 03 ETX ␃ ...
阅读全文 |
评论次数(0) |
浏览次数(290) |
所属类型(C语言学习)
[2012-01-31 17:59] C语言字符串处理
1.计算字符串的长度
/*
str 不为NULL
*/
int strlen(const char *str)
{
int i = 0;
while(*str++!='\0')
i++;
return i;
}
2.拷贝字符串到指定缓冲区中
/*
参数都不为NULL
*/
void strcpy(char *des,char *sour)
{
while(*des++=*sour++)
;
}
3.字符串的连接
void strcat(char *des,char *sour)
{
//找到\0的位置
whi...
/*
str 不为NULL
*/
int strlen(const char *str)
{
int i = 0;
while(*str++!='\0')
i++;
return i;
}
2.拷贝字符串到指定缓冲区中
/*
参数都不为NULL
*/
void strcpy(char *des,char *sour)
{
while(*des++=*sour++)
;
}
3.字符串的连接
void strcat(char *des,char *sour)
{
//找到\0的位置
whi...
阅读全文 |
评论次数(3) |
浏览次数(296) |
所属类型(C语言学习)
[2012-01-31 13:44] C语言练习题四最大公约数,任意参数,分解数据
1求m 和 n的最大公约数
int gcd(int m,int n)
{
if(m==0 || n==0)
return 0;
int temp;
//保证m>n
if(m<n)
{
temp = m;
m = n;
n = temp;
}
//gcd(m,n) = gcd(n,m%n)
while(m%n)
{
temp=m%n;
m=n;
n=temp;
}
return n;
}
/////////////////////////...
int gcd(int m,int n)
{
if(m==0 || n==0)
return 0;
int temp;
//保证m>n
if(m<n)
{
temp = m;
m = n;
n = temp;
}
//gcd(m,n) = gcd(n,m%n)
while(m%n)
{
temp=m%n;
m=n;
n=temp;
}
return n;
}
/////////////////////////...
阅读全文 |
评论次数(0) |
浏览次数(319) |
所属类型(C语言学习)
[2012-01-30 17:05] C语言练习题三查找字符,删除指定字符串,反转字符串
1.查找字符
/*查找source字符串中匹配chars字符串中任何字符的第一个字符,并且返回该指针,没有返回NULL
param:source原字符串
param:chars 要查找的字符产
返回值:成功返回一个指向匹配字符的指针,否则返回Null
*/
char* find_char (char const *source,char const *chars)
{
char c;
char *temp = NULL;
while((c=*source++)!='\0')
{
temp = chars;//每一次初始化为chars
while(*t...
/*查找source字符串中匹配chars字符串中任何字符的第一个字符,并且返回该指针,没有返回NULL
param:source原字符串
param:chars 要查找的字符产
返回值:成功返回一个指向匹配字符的指针,否则返回Null
*/
char* find_char (char const *source,char const *chars)
{
char c;
char *temp = NULL;
while((c=*source++)!='\0')
{
temp = chars;//每一次初始化为chars
while(*t...
阅读全文 |
评论次数(0) |
浏览次数(384) |
所属类型(C语言学习)
[2012-01-29 22:33] C语言学习操作符和表达式
1.对于无符号数的右移位,实行的是逻辑移位,左边用0补上。
2.位操作符可以把指定的某一位,赋值为0或1.
赋值1:value = value | 1<<number;
0: value = value & ~(1<<number);
3.任何非零值皆为真。
4.fgets(char*,size,stdin)从标准输入中输入字符,\n也算作字符,并且自动加上\0.如果输入的字符超了,最后一位是\0,多余的字符和\n都舍弃了。
5.练习
1>编写函数unsigned int reverse_bits(unsigned int value)这个函数的返回值是把va...
2.位操作符可以把指定的某一位,赋值为0或1.
赋值1:value = value | 1<<number;
0: value = value & ~(1<<number);
3.任何非零值皆为真。
4.fgets(char*,size,stdin)从标准输入中输入字符,\n也算作字符,并且自动加上\0.如果输入的字符超了,最后一位是\0,多余的字符和\n都舍弃了。
5.练习
1>编写函数unsigned int reverse_bits(unsigned int value)这个函数的返回值是把va...
阅读全文 |
评论次数(0) |
浏览次数(457) |
所属类型(C语言学习)
[2012-01-29 18:49] C语言练习题二:把一个字符串中连续多个空格换成一个
编写一个函数,从一个字符串中去除多余的空格。函数的原型如下:
void delblack(char str[])
当函数发现字符串中如果有一个地方由一个或多个连续的空格组成,就把它们改写成单个空格字符。注意当你遍历整个字符串时要确保它以\0字符结尾。
void deblack(char str[])
{
int balN = 0;;计算空格的数量
char* start = str;
while(*start!='\0')
{
if(*start==' ')
{
balN++;
}
else//不是空格,进行赋值
{...
void delblack(char str[])
当函数发现字符串中如果有一个地方由一个或多个连续的空格组成,就把它们改写成单个空格字符。注意当你遍历整个字符串时要确保它以\0字符结尾。
void deblack(char str[])
{
int balN = 0;;计算空格的数量
char* start = str;
while(*start!='\0')
{
if(*start==' ')
{
balN++;
}
else//不是空格,进行赋值
{...
阅读全文 |
评论次数(3) |
浏览次数(491) |
所属类型(C语言学习)
[2012-01-29 14:22] C语言练习题一:计算从出生日到现在的天数
#include <stdio.h>
#include <time.h>
/*
*获得当前的年份
*/
int get_now_year()
{
int now_year;
time_t timer;
struct tm *tblock;
timer = time(NULL);
tblock = localtime(&timer);
now_year = 1900 + tblock->tm_year;
return now_year;
}
/*
*获得当前的月份
*/
int get_now_month()
{
int now_year;...
#include <time.h>
/*
*获得当前的年份
*/
int get_now_year()
{
int now_year;
time_t timer;
struct tm *tblock;
timer = time(NULL);
tblock = localtime(&timer);
now_year = 1900 + tblock->tm_year;
return now_year;
}
/*
*获得当前的月份
*/
int get_now_month()
{
int now_year;...
阅读全文 |
评论次数(3) |
浏览次数(398) |
所属类型(C语言学习)