文件输入输出

时间:2011-08-30 14:55:21

标签: c++ file io

在下面的代码中,我限制了要写在文件上的字符数必须少于15,&当我回读文件时,写的字符正好是15(根据需要)。但是第一个WHILE循环没有按照需要工作,它应该被跳过&当计数器变量的值为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 个答案:

答案 0 :(得分:1)

标准I / O功能仅在按Enter键后才起作用。要获得所需的效果,您需要使用_getch,它会立即读取每个符号。请注意_getch不可移植。

答案 1 :(得分:1)

输入几乎总是行缓冲,因此当程序从命令行读取时,它几乎总是阻塞,直到输入端有一整行可用。