作为c ++的初学者,我试图使用getchar()获取输入字符,并将它们保存在文件中的单独行中,而不更改该文件的旧内容。但我不能单独列出这些行
void Record()
{
system("stty raw") ;
string line,old,s ;
char charflow ;
ifstream in ("Savefile");
while(in >> s)
old+=s ;
while(charflow = getchar(), charflow!=char(13) ){
line.push_back(charflow) ;
}
ofstream out ("Savefile") ;
out<<old<<"\n"<<line;
system("stty cooked") ;
}
int main(int argc, char*argv[])
{
cout << "put line 1: " ;
Record() ;
cout << endl ;
cout << "put line 2: " ;
Record() ;
cout << endl ;
cout << "put line 3: " ;
Record() ;
cout << endl ;
}
该文件如下所示:
line1line2
line3
答案 0 :(得分:0)
更改
old += s + "\n"; // because when s is added to old it is just a string not "\n" (the line break) is added.
所以我们需要自己添加换行符。
其次,无需在"\n"
out << old << "\n" << line;
只需将其更改为
即可out << old << line << "\n"; // line break at the end of each word is needed.
希望它完成你的任务。 :)
答案 1 :(得分:0)
只是想添加一些东西,如果我使用像Line1,Line2,line3这样的单词,那么代码将会很顺利
线路1
2号线
3号线
但如果我在每一行添加更多单词,我会遇到麻烦,所以我改变了
while(in >> s)
到
while(getline(in, s))
除了Swapnil R Mehta答案。