2017-07-25 188 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的失敗狀態。請記住,如果您只聲明一個數組而不初始化其值,則數組可以包含任何隨機數。