файл ввода вывода - PullRequest
       12

файл ввода вывода

0 голосов
/ 30 августа 2011

В следующем коде я ограничил число символов, которые должны быть записаны в файл, должно быть МЕНЬШЕ, чем 15, а записанных символов - ровно 15 (по желанию), когда я читаю файл обратно.Цикл не работает должным образом, его нужно пропустить и ОСТАНОВИТЬ прием ввода от пользователя, когда переменная счетчика имеет значение 15, но он еще не получает ввод от пользователя, пока он / она не нажмет ввод

#include<iostream>
#include<conio.h>
#include<string.h>
#include<fstream>

using namespace std;

int main()
{
   int i=0;
   ofstream out("my_file",ios::out|ios::binary); //'out' ofstream object
   char ch1;

 while(i<15)                       //receiving input even when i>15,till 'enter' IS pressed
 {
     cin>>ch1;      
     out.put(ch1);
     i++;

 }

 out.close();

 char ch;
ifstream in("my_file"); //'in' ifstream object

while(1)
{
    in.get(ch);
    if(in)cout<<ch;
}
in.close();
_getch();
return 0;
    }

Ответы [ 2 ]

1 голос
/ 30 августа 2011
Вход

почти всегда буферизуется строкой, поэтому, когда программа читает из командной строки, она почти всегда блокируется, пока на входе не появится вся строка.

1 голос
/ 30 августа 2011

Стандартные функции ввода / вывода работают только после нажатия Enter.Чтобы получить желаемый эффект, вам нужно использовать _getch, который сразу читает каждый символ.Обратите внимание, что _getch не является переносимым.

...