(C++)如何判断读入的是不是空格或换行?

2024-12-28 23:13:24
推荐回答(3个)
回答1:

你是怎么读入数据的嘛,不知道这个行不行if(c==32){}

我发现上面的答案可行。你把你的代码贴出来看哈嘛,有可能是其他地方出了问题。比如文件读入的时候。
#include
#include
using namespace std;

void main()
{
char ch;
ifstream in("fname.txt",ios_base::in);
if(!in)exit(0);

int i=500;
while(i--){
ch=in.get();
if(ch==' ')
cout.put(' ');
else if(ch==EOF)
cout< else cout.put(ch);
}

}
文本文件要和C++源文件在同一个文件夹中,且文件名必须是"fname.txt"。缺一不可。

回答2:

不用函数辅助?那你用什么?
用>>?这个一样是函数好吧,重载的运算符一样是函数。

而且!!!
>>这个运算符是吃空格并且吃换行符的,有多说它吃多少。
你不会是用了>>导致没有空格以及换行吧?

//以下是随便写的一个函数,
//你在源文件同目录下建一个test.txt就可以读里面的东西。

#include
#include

using namespace std;

void main()
{
char c;
ifstream fin;
fin.open("test.txt");
while(!fin.eof())
{
c=fin.get();

if(c==' ')
{
cout<<"空格";
continue;
}
if(c=='\n')
{
cout<<"换行"< continue;

}

cout< }
fin.close();
}

回答3:

以实参为char* p为例
int i=0;
while('\0\'!=p[i]){
if('\040'==p[i])//空格
...
if('\012'==p[i])//换行
...
}