C++从文件中读入一个字符的方法,高手指点!
最近做编译课程设计,要用C++语言,在C中读入一个字符的方法是fgetc(FILE*fp);但是用C++的文件流对象应该怎样操作呢?ifstreaminf("fname....
最近做编译课程设计,要用C++语言,在C中读入一个字符的方法是
fgetc(FILE *fp);
但是用C++的文件流对象应该怎样操作呢?
ifstream inf("fname.txt");
char ch ;
inf >> ch ;
如果这样的话,文件中的"\t","\n"," "等字符读不到ch中;
或许用什么方法设置一下,能读进来?请高手指点呀!
不想用inf.getline()去读一行再处理. 展开
fgetc(FILE *fp);
但是用C++的文件流对象应该怎样操作呢?
ifstream inf("fname.txt");
char ch ;
inf >> ch ;
如果这样的话,文件中的"\t","\n"," "等字符读不到ch中;
或许用什么方法设置一下,能读进来?请高手指点呀!
不想用inf.getline()去读一行再处理. 展开
5个回答
展开全部
我给你一个例子,从C:\temp.txt中读一个字符。
用了get()这个成员函数。
#include <fstream.h>
void main()
{
fstream ftemp;
ftemp.open("c:\\temp.txt",ios::in);
char ch;
ch=ftemp.get();
cout<<ch;
}
用了get()这个成员函数。
#include <fstream.h>
void main()
{
fstream ftemp;
ftemp.open("c:\\temp.txt",ios::in);
char ch;
ch=ftemp.get();
cout<<ch;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我有从一个文件中读入一个字符串,而且还能实现读出的字符串的比较问题的简单例子,供你参考:
const int Max=50;
char buff1[Max],buff2[Max];
const char*big,*small;
int i,j;
boolean ok=true;
while(!feof(fp1)&&!feof(fp2)){
fgets(buff1,Max-2,fp1);
fgets(buff2,Max-2,fp2);
if(strlen(buff1)>strlen(buff2)){
big=buff1;small=buff2;
}
else{big=buff2;small=buff1;}
while(*small++){
if(strchr(big,*small)==0){
ok=false;
break;//找不到这个字符
}
}
}
const int Max=50;
char buff1[Max],buff2[Max];
const char*big,*small;
int i,j;
boolean ok=true;
while(!feof(fp1)&&!feof(fp2)){
fgets(buff1,Max-2,fp1);
fgets(buff2,Max-2,fp2);
if(strlen(buff1)>strlen(buff2)){
big=buff1;small=buff2;
}
else{big=buff2;small=buff1;}
while(*small++){
if(strchr(big,*small)==0){
ok=false;
break;//找不到这个字符
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上面的可能都没法处理标识符。楼上的如果遇到标识符恐怕也不能处理。
一个带有标识符的字符串,我能想到的只有读出来以后改变储存方式(不用char[])
一个带有标识符的字符串,我能想到的只有读出来以后改变储存方式(不用char[])
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过文件流读取数据
ifstream类代表读文件对象,所有的读操作都在这个类中。
read成员函数,用来读取数据到指定的buf中。
这个成员函数来至basic_istream类。
函数原型(来直MSDN文档)
basic_istream& read( char_type *_Str, streamsize _Count );
_Str 字符指针
_Count 要读取的字符数量
get成员函数,用来读取一个或多个字符
这个成员函数来至basic_istream类。
函数原型(来直MSDN文档)
int_type get( ); 读取一个字符,不过是作为int类型返回
basic_istream& get( char_type& _Ch ); 读取一个字符
basic_istream& get( char_type *_Str, streamsize _Count ); 读取指定数量的字符
basic_istream& get( char_type *_Str, streamsize _Count, char_type _Delim ); 读取指定数量的字符,但与到与_Delim相同的字符就停止
basic_istream& get( basic_streambuf<Elem, Tr> *_Strbuf );
basic_istream& get( basic_streambuf<Elem, Tr> *_Strbuf, char_type _Delim );
peek成员函数,用来返回下一个字符,当不从istream的buf中移出
这个成员函数来至basic_istreamlei。
函数原型(来至MSDN文档)
int_type peek( );
getline成员函数,用来读取一行数据
这个成员函数来至basic_istream类
函数原型(来至MSDN文档)
basic_istream& getline( char_type *_Str, streamsize _Count );
basic_istream& getline( char_type *_Str, streamsize _Count, char_type _Delim );
readsome成员函数,用于读取指定数量的数据到buf中
这个函数来至basic_istream类。
函数原型(来至MSDN文档)
streamsize readsome( char_type *_Str, streamsize _Count );
>>运算符重载
对C++基本类型进行了重载操作。可以直接读取这些数据。但会跳过控制字符。
用户可以扩展这个运算符操作的类型。
这个读取是有类型的。
ifstream类代表读文件对象,所有的读操作都在这个类中。
read成员函数,用来读取数据到指定的buf中。
这个成员函数来至basic_istream类。
函数原型(来直MSDN文档)
basic_istream& read( char_type *_Str, streamsize _Count );
_Str 字符指针
_Count 要读取的字符数量
get成员函数,用来读取一个或多个字符
这个成员函数来至basic_istream类。
函数原型(来直MSDN文档)
int_type get( ); 读取一个字符,不过是作为int类型返回
basic_istream& get( char_type& _Ch ); 读取一个字符
basic_istream& get( char_type *_Str, streamsize _Count ); 读取指定数量的字符
basic_istream& get( char_type *_Str, streamsize _Count, char_type _Delim ); 读取指定数量的字符,但与到与_Delim相同的字符就停止
basic_istream& get( basic_streambuf<Elem, Tr> *_Strbuf );
basic_istream& get( basic_streambuf<Elem, Tr> *_Strbuf, char_type _Delim );
peek成员函数,用来返回下一个字符,当不从istream的buf中移出
这个成员函数来至basic_istreamlei。
函数原型(来至MSDN文档)
int_type peek( );
getline成员函数,用来读取一行数据
这个成员函数来至basic_istream类
函数原型(来至MSDN文档)
basic_istream& getline( char_type *_Str, streamsize _Count );
basic_istream& getline( char_type *_Str, streamsize _Count, char_type _Delim );
readsome成员函数,用于读取指定数量的数据到buf中
这个函数来至basic_istream类。
函数原型(来至MSDN文档)
streamsize readsome( char_type *_Str, streamsize _Count );
>>运算符重载
对C++基本类型进行了重载操作。可以直接读取这些数据。但会跳过控制字符。
用户可以扩展这个运算符操作的类型。
这个读取是有类型的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询