首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言中一个关于文件操作的有关问题

2012-02-29 
C语言中一个关于文件操作的问题自己在桌面上创建一个.TXT的文件,在读文件操作时可否把该TXT文件中里的字符

C语言中一个关于文件操作的问题
自己在桌面上创建一个.TXT的文件,在读文件操作时可否把该TXT文件中里的字符串读出来并且赋予一个数组(假设该TXT文件里只有一串字母),并且计算出该数组的长度?若可以该怎么写?请教各位,谢谢啦

[解决办法]
*/从键盘读入一行字符,把其中的字母依次放在磁盘文件fa2.dat中,再把它从磁盘文件读入程序,
将其中的小写字母改成大写字母,再存入磁盘fa3.dat中*/
#i nclude <fstream>
#i nclude <iostream>
#i nclude <cmath>
using namespace std;
//////////////从键盘上读取字符的函数
void read_save(){
char c[80];
ofstream outfile( "f1.dat ");//以输出方工打开文件
if(!outfile){
cerr < < "open error! " < <endl;//注意是用的是cerr
exit(1);
}
cin.getline(c,80);//从键盘读入一行字符
for(int i=0;c[i]!=0;i++) //对字符一个一个的处理,直到遇到 '/0 '为止
if(c[i]> =65&&c[i] <=90||c[i]> =97&&c[i] <=122){//保证输入的字符是字符
outfile.put(c[i]);//将字母字符存入磁盘文件
cout < <c[i] < < " ";
}
cout < <endl;
outfile.close();
}
void creat_data(){
char ch;
ifstream infile( "f1.dat ",ios::in);//以输入的方式打开文件
if(!infile){
cerr < < "open error! " < <endl;
exit(1);
}
ofstream outfile( "f3.dat ");//定义输出流f3.dat文件
if(!outfile){
cerr < < "open error! " < <endl;
exit(1);
}
while(infile.get(ch)){//当读取字符成功时
if(ch <=122&&ch> =97)
ch=ch-32;
outfile.put(ch);
cout < <ch;
}
cout < <endl;
infile.close();
outfile.close();
}
int main(){
read_save();
creat_data();
system( "pause ");
return 0;
}
[解决办法]
可以考虑的思路:
int l;
char *p;
FILE *fp;
1.创建文件,fp=fopen( "**.txt ", "w ");
2.读文件,fp=fopen( "**.txt ", "r ");
3.得到字符串长度,l=filelength(fileno(fp));
4.动态分配一个数组,p=malloc(l);
5.赋给数组,fread(p,l,1,fp);不用sprintf,避免被格式输出。
[解决办法]
在D盘建嘛.不然路径太长,假设d:\a.txt
#include <stdio.h>
#include <string.h>
void main()
{
FILE *in;
char infile[10],str[50];
int i=0,b;
printf( "open the file, type the file name: ");
scanf( "%s ",infile);
in=fopen(infile, "r ");
while(!feof(in))
{
str[i]=fgetc(in);
i++;}
str[i]= '\0 ';
printf( "这里可以知道长度%d\n ",i);
b=strlen(str);
printf( "这样也可以知道长度%d\n ",b);
printf( "字符串为:%s ",str);
fclose(in);
}

a[i]=fgetc(in);
b=strlen(a);
}


热点排行