帮我解决个问题
#include<iostream> #include<fstream> //程序意图:
#include<stdlib.h> //输入一行字符,把其中的字母放到磁盘文件file中。在把它从磁盘文件读入程序
using namespace std;//把其中的小写字母改为大写字母,在存入磁盘文件file2中,同时在屏幕上输出
void save_file()
{
char str[80];
int i;
ofstream outfile("file1.txt");
if(! outfile)
{
cerr<<"open error!"<<endl;
exit(1);
}
cin.getline(str,80);
for(i=0;str[i]!=0;i++)
{
if(str[i]>=65&&str[i]<=90||str[i]>=97&&str[i]<=122)
{
outfile<<str[i]<<" ";
}
}
outfile.close();
}
void from_file()
{ char str;
ifstream infile("file1.txt");
if(! infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
ofstream outfile("file2.txt");
if(! outfile)
{
cerr<<"open error!"<<endl;
exit(1);
}
while(infile.get(str))
{
if(str>=97&&str<=122)
{
str-=32;
outfile<<str<<" ";
cout<<str<<" ";
}
}
infile.close();
outfile.close();
}
int main()
{
save_file();
from_file();
system("PAUSE");
return 0;
}
1.谁能告诉我for(i=0;str[i]!=0;i++)中为什么是str[i]!=0(这里的0是什么意思呢?)
2.为什么我把void save_file()中的改为for(i=0;str[i]!='\n';i++)屏幕显示的结果后面无缘无故的多了一些字母
呢!例如我输入 Hello, world! 正确的显示应该是 E L L O W O R L D.
但是此时却显示E L L O W O R L D P R O O O C D X.