请各位帮忙看看这段代码

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:31:28
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{
string s;
char c;
ifstream in("word.txt");
ofstream out("word2.txt");
while(getline(in,s))//每次从word.txt文件中读取一行并存入s中
{
cout<<"请输入字符:";
cin>>c;
if(c=='\n')//当输入换行符时输出s中的内容
cout<<s<<endl;
out<<s<<"\n";//把word.txt中的内容复制到word2.txt
}
return 0;

}
题目要求是:编写一个程序,一次显示文件的一行,然后等待用户按下回车键后显示下一行,并把文件中的内容复制到另外一个文件,但是这段程序在运行的时候总是不能够显示出每一行的内容,这是为什么,程序的哪个部分出问题了?

楼主应该把cin>>c;改为cin.get(c); 否则在只输入回车符时该调用不会返回,还会继续等待输入。

而且判断换行符之后应该加大括号把后面两条语句括起来,否则该判断只影响其下面一条语句,也就是说如果不是输入的换行符的话虽然没显示,但还是拷贝了一行到输出文件中。实际上这个判断好象没有什么必要,因为不按回车上面的调用是不会返回的。

.........................

要用 字符串数组 ?