используя getchar () для получения символов и сохранения их в файл с новой строкой каждый раз c ++

0

Как новичок в 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
    Попробуйте использовать endl вместо "\ n". Попробуйте обратиться к этому stackoverflow.com/questions/5373766/…
Теги:
getchar

2 ответа

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.

Надеюсь, это ваша задача. :)

  • 0
    Спасибо за ваш ответ, теперь это работает довольно хорошо
0

Просто хотел добавить somthing, если я использую одно слово, например Line1, Line2, line3, поэтому код будет очень хорошо

Линия 1

Line2

Line3

но если я добавлю больше слов в каждую строку, я получу проблемы, поэтому я изменил

while(in >> s) 

в

while(getline(in, s))   

В дополнение к Swapnil R Mehta Answer.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню