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