VC和C++按行读取文本文件
while(f.ReadString(fileString) != FALSE) //直到读完 { //MessageBox(fileString); //读每行的内容 g.WriteString( DecimalToBinary(fileString)+" "); } } CString DecimalToBinary(CString strDecimal)//将输入的十进制数转换为二进制数 { int nDecimal = atoi(strDecimal.GetBuffer(0));
int nYushu; //余数 int nShang; //商 CString strBinary = ""; char buff[2]; CString str = ""; BOOL bContinue = TRUE; while(bContinue) { nYushu = nDecimal%2; nShang = nDecimal/2; sprintf(buff,"%d",nYushu); str = strBinary; strBinary.Format("%s%s",buff,str); nDecimal = nShang; if(nShang==0) bContinue = FALSE; } return strBinary; } 2. c语言
FILE *fp; if(fp=fopen(filename,"r")) {
while(!feof(fp)) { memset(app1,0x00,MAX_PATH); fgets(app1,MAX_PATH,fp); strend(app1);//去除fgets取得的" " } } fclose(fp);
void strend(char *str) { for(int i=0;i<strlen(str);i++) { if(str[i]==" ")str[i]=" "; }
} char* FindStr(char* str,char p) { //返回最后一个字符p之前的字符串 char* retchar=strrchr(str,p); int i=(int)(retchar-str+1); str[i]=" "; return str; } 3. C++读取按行读取 #include<string> #include<iostream> #include<stdlib.h> #include<fstream> int main() { std::string file_name="123"; std::ifstream fin(file_name.c_str()); std::string textline[3]; for(int i=0;i<3;++i) getline(fin,textline[i]," ");//遇到换行结束这一行的读取 for(int i=0;i<3;++i) std::cout<<textline[i]<<" ";
return 0; }
C 文件操作
1.fopen、fclose fopen:功能打开文件 fclose:功能关闭文件 头文件:#include<stdio.h> 定义函数:FILE * fopen(const char * path,const char * mode); 函数参数说明: path:字符串包含欲打开的文件路径及文件名。 上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask 值。 返回值: 文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL,并把错误代码存在errno
中。 一般而言,打开文件后会作一些文件读取或写入的动作,若开文件失败,接下来的读写动作也无法顺利进行,所以在fopen()后请作错误判断及处理。 2.fread 和 fwrite: fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。声明: #include
<stdio.h> 参数解释:
返回值: 读或写的记录数,成功时返回的记录数等于nmemb,出错或读到文件末尾时返回的记录数小于nmemb,也可能返回0。
功能:
参数: |
取文件长度
FILE *
file;
fseek(file, 0, SEEK_END);
long len=ftell(file);
fseek(file,0,SEEK_SET);
long ftell(FILE *
stream);
函数说明
ftell()用来取得文件流目前的读写位置。参数stream为已打开的文件指针。
返回值
当调用成功时则返回目前的读写位置,若有错误则返回-1,errno会存放错误代码。