为什么这个数据处理代码不工作?

问题描述:

此代码应显示“ABC123”,而是,显示一些非识别字母为什么这个数据处理代码不工作?

#include<iostream> 
    #include<fstream> 
    #include<stdlib.h> 
    #include<string.h> 
    using namespace std; 
    int main() 
    { 
    fstream fin("rabbit.txt",ios::in|ios::out); 
    fin.seekg(0); 
    char arr[100]= "abc123 abc abc ejgrjgn ejrog rge k abc"; 
    char a[100]; 
    fin<<arr<<'\n'; 
    fin.seekg(0); 
    char ch; 
    fin.get(ch); 
    fin.seekg(0); 
    fin>>a; 
    cout<< a; 
    } 
+0

您能否将错误缩小到特定的部分或点? – 0xDEFACED

+0

在阅读之前,您是否冲洗了流? –

+0

fin.get(ch); 应该这样冲洗流? –

您应经常检查错误:

fstream fin("rabbit.txt",ios::in|ios::out); 
if (fin.is_open()) 
{ 
    fin.seekg(0); 
    char arr[100]= "abc123 abc abc ejgrjgn ejrog rge k abc"; 
    char a[100]; 
    fin<<arr<<'\n'; 
} 
else 
{ 
    cout<<"failed to open fstream\n"; 
} 

您需要的ios ::或iOS :: trunc创建并打开文件。