C ++使用getline从文件中读取后,我无法再写入txt文件

时间:2010-11-02 02:58:49

标签: c++ iostream getline

我能够写入文本文件,然后使用getline,我无法再写入该文件。

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main(){
 ifstream infile;
 fstream crypto;
 ofstream hacker;
 string tempString;
 string tempString2;
 string plaintext;
 string line;
 string dec;
.
.
.
crypto<<"hello";//write some stuff to file here
use getline(crypto, line, '\n')
crypto<<"hi";//Doesnt write to file anymore. 

3 个答案:

答案 0 :(得分:2)

文件具有单个错误状态和共享文件位置指示符,用于读取和写入操作。

如果设置了错误状态,则对文件的读取和写入操作都不会成功。读取文件末尾是一个触发器,它将导致设置错误状态,在这种情况下,直到文件位置指示符重新定位在文件的边界内。

由于读取和写入都只有一个位置指示器,因此每次在读取和写入同一文件之间切换时都需要重新定位该指示器,以确保在要执行的位置执行下一个操作发生。

答案 1 :(得分:0)

从代码中看起来有点困难(尝试在每行之后返回),但我猜你已经设置了文件访问权限。

答案 2 :(得分:0)

文件已进入错误状态。

一旦文件处于错误状态,则在重置错误状态之前,将忽略所有io操作。所以基本上上面表明getline操作在某种程度上失败了。

相关问题