2017-07-25 109 views
0

我想读一个txt文件的内容,并将其保存到一个数组,但是这没有被正确读取/保存到我的数组正确:INFILE C++没有被正确读取

这里的data.txt :

a 
b 
c 

下面是main.cpp中:

#include <iostream> 
#include <fstream> 

using namespace std; 

void readin(string file); 

int main(){ 
    readin("data.txt"); 
} 

void readin(string file){ 
    int myarr[10]; 
    ifstream infile; 
    infile.open(file); 
    if(infile.fail()){ 
     cerr << "Input file failed to open."; 
     abort(); 
    }else{ 
    infile >> myarr[0] >> myarr[1] >> myarr[2]; 
    cout << "myarr[0]" << "\t" << myarr[0] << endl; 
    cout << "myarr[1]" << "\t" << myarr[1] <<endl; 
    } 
    infile.close(); 
} 

这里是我的结果被输出作为什么:

myarr[0] 0 
myarr[1] 32767 
+0

它需要一些额外的努力来说服'''将a解析为'int'。读取失败,Crom只能知道坐在'myarr'中的什么。读取后检查输入流的状态,以确保程序正确读取。例如:'if(infile >> myarr [0] >> myarr [1] >> myarr [2]){//很好。打印的东西}其他{/ /不好。处理错误}' – user4581301

回答

0

查看myarr的数据类型和data.txt的内容。你将如何将这些行转换为整数?读取后也可能检查infile的失败状态。请记住,如果您只声明一个数组而不初始化其值,则数组可以包含任何随机数。