Как новичок в 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
+ Изменить
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.
Надеюсь, это ваша задача. :)
Просто хотел добавить somthing, если я использую одно слово, например Line1, Line2, line3, поэтому код будет очень хорошо
Линия 1
Line2
Line3
но если я добавлю больше слов в каждую строку, я получу проблемы, поэтому я изменил
while(in >> s)
в
while(getline(in, s))
В дополнение к Swapnil R Mehta Answer.